|
|
|
| Есть 2 таблицы, в каждой из которых имеется столбец id. Подскажите, как написать запрос, который-бы выводил из первой таблицы значения id , которых нет во второй таблице. Насколько я понял, в таких случаях используется левостороннее объединение? | |
|
|
|
|
|
|
|
для: beowulf
(30.09.2005 в 15:39)
| | Написал вот такой запрос
"SELECT table.id,
FROM table LEFT JOIN table1
ON table.id=table1.idn
WHERE idn IS NULL"
|
Вроде работает
Кстати, может кто-нибудь скажет, в каких случаях используются левые,а в каких - правые объединения? | |
|
|
|
|
|
|
|
для: beowulf
(30.09.2005 в 21:04)
| | Да всё верно, нужно использовать именно такой запрос. На самом деле правое и левое объединение ни чем друг от дурга не отличается - ваш запрос можно осуществить и при помощи правого объединения, поменяв местами имена таблиц
"SELECT table.id,
FROM table1 RIGHT JOIN table
ON table.id=table1.idn
WHERE idn IS NULL"
|
В некоторых СУБД вообще отсутствует понятие правого объединения, так как левого за глаза хватает и оно более естественно: в результат попадают записи без пары из первой таблицы, а не из второй. | |
|
|
|