Comparing a Table to Itself : Variable « Select Clause « SQL / MySQL






Comparing a Table to Itself

        
mysql> CREATE TABLE author
    -> (
    ->  a_id    INT UNSIGNED NOT NULL AUTO_INCREMENT,   # author ID
    ->  name    VARCHAR(30) NOT NULL,                                   # author name
    ->  PRIMARY KEY (a_id),
    ->  UNIQUE (name)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE book
    -> (
    ->  a_id    INT UNSIGNED NOT NULL,                                  # author ID
    ->  p_id    INT UNSIGNED NOT NULL AUTO_INCREMENT,   # book ID
    ->  title   VARCHAR(100) NOT NULL,                                  # title of book
    ->  state   VARCHAR(2) NOT NULL,                                    # state where purchased
    ->  price   INT UNSIGNED,                                                   # purchase price (dollars)
    ->  INDEX (a_id),
    ->  PRIMARY KEY (p_id)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql>
mysql> INSERT INTO author (name) VALUES
    ->  ('Tom'),
    ->  ('Monet'),
    ->  ('Jack'),
    ->  ('Picasso'),
    ->  ('Mary')
    -> ;
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql>
mysql> INSERT INTO book (a_id,title,state,price)
    ->  SELECT a_id, 'Database', 'IN', 34 FROM author WHERE name = 'Tom';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql>
mysql> INSERT INTO book (a_id,title,state,price)
    ->  SELECT a_id, 'SQL', 'MI', 87 FROM author WHERE name = 'Tom';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql>
mysql> INSERT INTO book (a_id,title,state,price)
    ->  SELECT a_id, 'MySQL', 'KY', 48 FROM author WHERE name = 'Jack';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> INSERT INTO book (a_id,title,state,price)
    ->  SELECT a_id, 'XML', 'KY', 67    FROM author WHERE name = 'Jack';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> INSERT INTO book (a_id,title,state,price)
    ->  SELECT a_id, 'Java', 'IA', 33   FROM author WHERE name = 'Jack';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql>
mysql> INSERT INTO book (a_id,title,state,price)
    ->  SELECT a_id, 'HTML', 'NE', 64   FROM author WHERE name = 'Mary';
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql>
mysql>
mysql>
mysql> SELECT @id := a_id FROM book WHERE title = 'XML';
+-------------+
| @id := a_id |
+-------------+
|           3 |
+-------------+
1 row in set (0.00 sec)

mysql> SELECT title FROM book WHERE a_id = @id;
+-------+
| title |
+-------+
| MySQL |
| XML   |
| Java  |
+-------+
3 rows in set (0.00 sec)

mysql>
mysql> drop table book;
Query OK, 0 rows affected (0.00 sec)

mysql> drop table author;
Query OK, 0 rows affected (0.00 sec)

   
    
    
    
    
    
    
    
  








Related examples in the same category

1.Variables can be assigned values from arbitrary expressions.
2.Using variable the calculate the new column ID
3.Global System Variables versus System Variables at the Connection Level
4.Using SQL Variables in Queries
5.Returns all global variables and their settings
6.Return the session system variables
7.If you're retrieving the value of a global variable, you must also precede the variable name with the global keyword
8.If you want to retrieve a value for a session variable, rather than a global variable
9.Set the query_cache_limit variable to 1000000 at the global level
10.To set a session-level variable
11.Check the state of the variables with the following command:
12.Ordinary variables indicated by a prefixed @ sign.
13.System and server variables: Such variables contain states or attributes of the MySQL server.
14.Variable Assignment
15.Use of Variables
16.SQL variables hold single values.
17.If the variable has not been used previously, that value is NULL:
18.To set a variable explicitly to a particular value, use a SET statement.
19.Variable names are case sensitive:
20.SQL variables may be used to store the results of intermediate calculations.
21.Use a two-stage approach involving one query that selects the maximum size into a SQL variable, and another th
22.Calculate the overall average and save it in a variable, then compare each driver's average to the saved value
23.To use a SQL variable, store the highest price in it, then use the variable to identify the record containing
24.To find a value and save it in a variable
25.SELECT statement defines two variables
26.User Variables
27.Set a variable specifically.
28.Create the user variable PLAYERNO and initialize it with the value 7.
29.Can the result of a SELECT statement be assigned to a user variable
30.Compare decimal type variables
31.Create and set MySQL variable
32.Using concat to create value for variable
33.Using variable in where clause
34.Assin constant value to a variable
35.Assign the result from a sql to a variable
36.Assign a constant to a variable
37.Assign and create three variables inside one select statement
38.Assign the result of an aggregate function to a variable
39.Using variable to pass value between sql statement
40.Compare to a variable
41.Insert statement with variable
42.Assign value to a variable with :=
43.Using select ... into to assign value to variabls
44.A two-query approach
45.Advancing the rank only when values change
46.Use the differential as follows to produce team standings that include winning percentage and GB values
47.To calculate a standard deviation based on n-1 degrees of freedom instead
48.Calculating Linear Regressions or Correlation Coefficients
49.Assigning Ranks