Вы можете LEFT JOIN
таблица с самим собой, также как вы можете JOIN
таблица с самим собой. Ваша цель обычно будет отличаться, потому что специфическая характеристика LEFT JOIN
- это, конечно, наличие строки в выходных данных, когда справа нет соответствующей строки; Вы можете выбрать те строки, которые были специально выбраны таким образом, проверив NULL
для «другой части» строки, той части, которая обычно берется из таблицы справа.
Рассмотрим, например, таблицу Product
со столбцами ID
, первичный ключ, Name
, Category
и Cost
; Вы хотите получить информацию о продуктах, которые являются самыми дешевыми в своей категории. Тогда ...:
SELECT P1.Name, P1.Category, P1.Cost
FROM Product AS P1
LEFT JOIN Product AS P2
ON (P1.Category = P2.Category and P1.Cost > P2.Cost)
WHERE P2.ID IS NULL
является примером «левого соединения таблицы с самим собой», которая будет отвечать спецификации «вы хотите» (если более чем один элемент имеет одинаково низкую стоимость в категории, вы получите их все - запрос на самом деле дает вам такие предметы, что ни один из предметов в их категории не является дешевле и не имеет чеков для предметов равных стоимости; -).