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