Self join : Simple JOIN : Join SQL / MySQL


SQL / MySQL » Join » Simple JOIN »

 

Self join



/*
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
    ->        FROM bird AS p1, bird AS p2
    ->        WHERE p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';
+-----------+------+----------+------+---------+
| name      | sex  | name     | sex  | species |
+-----------+------+----------+------+---------+
| BlueBird1 | f    | RedBird1 | m    | Bus     |
| BlueBird1 | f    | RedBird3 | m    | Bus     |
| BlueBird1 | f    | RedBird4 | m    | Bus     |
+-----------+------+----------+------+---------+
3 rows in set (0.04 sec)


*/
Drop table Bird;

CREATE TABLE Bird (
    name VARCHAR(20)
    owner VARCHAR(20),
    species VARCHAR(20)
    sex CHAR(1)
    birth DATE, 
    death DATE
);
     
INSERT INTO  Bird VALUES ('BlueBird1','Joe','Bus','f','1999-03-30',NULL);
INSERT INTO  Bird VALUES ('RedBird1','Yin','Bus','m','1979-04-30',1998-01-30);
INSERT INTO  Bird VALUES ('BlueBird2','Joe','Car','f','1999-03-30',NULL);
INSERT INTO  Bird VALUES ('RedBird3','Yin','Bus','m','1979-04-30',1998-01-30);
INSERT INTO  Bird VALUES ('RedBird4','Yin','Bus','m','1998-01-30',NULL);
       
  
SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
       FROM bird AS p1, bird AS p2
       WHERE p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';

           
       



Leave a Comment / Note


 
Verification is used to prevent unwanted posts (spam). .

Follow Navioo On Twitter

SQL / MySQL

 Navioo Join
» Simple JOIN