atis2345
@atis2345
PHP developer

Как вытянуть JOIN запросом только те поля у которых нет совпадений(null)?

Нужно вытянуть поля у которых нет совпадений, т.е. = null.
Мне не нужно вытягивать поля у которых есть совпадения!
Так же у полей нет свойства null.
RIGHT JOIN мне не подходит, потому что вытягивает все подряд

Обьясню проще. Мне нужно вытянуть города в которых никто не живет(т.е. нет строк = людей в базе)

Вся сложность в том что городов много и проверять каждый результат на empty это ппц.
  • Вопрос задан
  • 1320 просмотров
Решения вопроса 1
atis2345
@atis2345 Автор вопроса
PHP developer
SELECT
	hc1.label 	AS country,
	hc1.id 	AS country_id,
	hc3.label 	AS city,
	hc3.id 	AS city_id,
	hh.id 	AS hotel_id,
	hh.name 	AS name,
	hh.catalog    AS catalog

FROM `hotels_catalog` hc1
	INNER JOIN `hotels_catalog` hc2 ON hc2.parent_id = hc1.id
	INNER JOIN `hotels_catalog` hc3 ON hc3.parent_id = hc2.id
-- error
-- Вот проблема ---> hh.catalog = hc3.id
	LEFT JOIN  `hotels_hotels`  hh  ON hc3.id = hh.catalog
-- end
WHERE
	hc1.level = 1
	&& hc1.label = 'Canada'
	&& hc2.level = 2
	&& hc3.level = 3
	&& hh.id is NULL

GROUP BY hc3.id

ORDER BY hc1.label,
		     hc3.label
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ollisso
where table.field IS NULL

но скорее всего (включаем телепатию) вы хотите что-то подобное:

select *
from table1
left join table2 using (model_id)
where table2.id is null
Ответ написан
Therapyx
@Therapyx
Data Science
SELECT table1.*, table2,*
FROM table1, table2
LEFT
JOIN s ON table1.column1 = table2.column1
WHERE table.column IS NOT NULL или IS NULL
Я правильно тебя понял? )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы