Mysql Exists
Mysql Exists return you only matches records of table 1 with table2. The unmatchable records are not displayed in the output of the table.
Understand with Example
The Tutorial illustrate an example that create a table 'MyTable' with required fieldnames and datatypes respectively.
Create Table MyTable:
mysql> CREATE TABLE MyTable (
-> Empid int(10),
-> Empname varchar(60)
-> Salary int(90)
-> );
Query OK, 0 rows affected (0.13 sec)
|
Insert Values into MyTable:
The insert into is used to add the records value to the table 'MyTable'.
mysql> insert into MyTable values(01,'Girish','20000'); Query OK, 1 row affected (0.02 sec) mysql> insert into MyTable values(10,'Komal','20000'); Query OK, 1 row affected (0.01 sec) mysql> insert into MyTable values(02,'A','21000'); Query OK, 1 row affected (0.01 sec) mysql> insert into MyTable values(03,'C','22000'); Query OK, 1 row affected (0.00 sec) mysql> insert into MyTable values(04,'V','23000'); Query OK, 1 row affected (0.00 sec) mysql> insert into MyTable values(05,'B','24000'); Query OK, 1 row affected (0.00 sec) mysql> insert into MyTable values(06,'E','25000'); Query OK, 1 row affected (0.00 sec) mysql> insert into MyTable values(07,'Q','26000'); Query OK, 1 row affected (0.01 sec) mysql> insert into MyTable values(08,'W','27000'); Query OK, 1 row affected (0.01 sec) mysql> insert into MyTable values(09,'AS','28000'); Query OK, 1 row affected (0.00 sec)` |
Create Table employee:
Now we create another table 'Employee' whose fieldnames and datatypes are specified.
mysql> CREATE TABLE Employee(
-> Empid int(10),
-> Empname varchar(60),
-> Salary int(90),
-> DOB date
-> );
Query OK, 0 rows affected (0.01 sec)
|
Insert Values into Employee:
mysql> INSERT INTO Employee (Empid,Empname,Salary,DOB) VALUES
-> (01,'Habib',2014,20041202),
-> (02,'Karan',4021,20030411),
-> (03,'Samia', 22,20080223),
-> (04,'Hui Ling', 25,20081015),
-> (05,'Yumie', 29,19990126);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
|
Query for Exists
The output table shows only those empid that matches from table 'mytable' with employee. The unmatchable records id are not displayed.
mysql> select empid from mytable where EXISTS (select empid from employee); +-------+ | empid | +-------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 9 | +-------+ 8 rows in set (0.00 sec)


