MySQL возвращает набор, если значения не существуют

Допустим, у меня есть 5 строк, содержащих следующее:

ID     KEY       VALUE
1      address   123 Main Street
1      latlng    (111.139, 111.238)
2      address   45 South Street
3      address   67 North Ave
3      latlng    (448.002, 100.301110)

Теперь, если бы я хотел вернуть ТОЛЬКО строку, которая НЕ содержала соответствующей строки latlng, сопровождающей адрес (т. Е. ID 2), как бы я поступил с оператором mySQL?

Это меня поставило в тупик!!

2 ответа

Решение
SELECT *
FROM TABLE
WHERE ID NOT IN
(SELECT ID FROM TABLE WHERE KEY = 'LATLNG')

Попробуйте что-то вроде

SELECT t1.*
FROM Table t1
    LEFT OUTER JOIN Table t2 ON t1.id = t2.id
WHERE t1.Key = 'latlng' AND t2.Key = 'address' AND t2.id IS NULL
Другие вопросы по тегам