| name
| date
| type
| remark
|
| Fluffy
| 1995-05-15
| litter
| 4 kittens, 3 female, 1 male
|
| Buffy
| 1993-06-23
| litter
| 5 puppies, 2 female, 3 male
|
| Buffy
| 1994-06-19
| litter
| 3 puppies, 3 female
|
| Chirpy
| 1999-03-21
| vet
| needed beak straightened
|
| Slim
| 1997-08-03
| vet
| broken rib
|
| Bowser
| 1991-10-12
| kennel
| |
| Fang
| 1991-10-12
| kennel
| |
| Fang
| 1998-08-28
| birthday
| Gave him a new chew toy
|
| Claws
| 1998-03-17
| birthday
| Gave him a new flea collar
|
| Whistler
| 1998-12-09
| birthday
| First birthday
|
Предположим, нужно узнать, в каком возрасте животные давали приплод:
mysql> SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark
-> FROM pet, event WHERE pet.name = event.name AND type = "litter";
| name
| age
| remark
|
| Fluffy
| 2.27
| 4 kittens, 3 female, 1 male
|
| Buffy
| 4.12
| 5 puppies, 2 female, 3 male
|
| Buffy
| 5.10
| 3 puppies, 3 female
|
Для объединения не обязательно иметь две отдельные таблицы; иногда можно объединить таблицу с самой собой - если нужно сравнить одни записи таблицы с другими записями той же таблицы. Например, для того, чтобы обнаружить среди животных ``семейные пары'', можно объединить таблицу pet с ней самой, составив пары животных разного пола, но одного вида:
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species FROM pet AS p1, pet AS p2
-> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
| name
| sex
| name
| sex
| species
|
| Fluffy
| f
| Claws
| m
| cat
|
| Buffy
| f
| Fang
| m
| dog
|
| Buffy
| f
| Bowser
| m
| dog
|