LINUX.ORG.RU

MySQL вывести запросы из одной таблицы, если в другой нет об этой записи данных.

 ,


0

1

У меня есть таблица с параметрами, а есть таблица, где у меня идут записи связи между определенным местом и параметром. Т.е. можно дать например десяток разных параметров одному месту. Как мне сделать запрос, чтобы можно было вывести собственно список параметров, не задействованных под связь, и обратно, как вывести уже задействованные?

Есть запрос select * from properties,properties_to_places where NOT (properties.id=properties_to_places.properties and properties_to_places.places=1); Как я понимаю в данном случае он может выводить только уже задействованные если убрать NOT, так как при выводе из 2х таблиц он именно будет сверять каждый запрос с другим, а если сверять будет не с чем он не выведет ничего.

Как я понял, надо как то юзать JOIN? Или основная проблема в том, что записей во второй таблице нет вовсе?

★★

Последнее исправление: Bupyc (всего исправлений: 2)

Может, я неправильно понял задачу, но вот мой вариант:

select * from properties where (select count(*) from properties_to_places where properties_to_places.id=properties.id) > 0

И, наоборот, где = 0.

amomymous ★★★
()
Ответ на: комментарий от amomymous

Неплохо, а так я и не подумал :) Оригинально их внутри посчитать и сравнить сколько совпадений, спасибо огромное.

Это почти то что нужно, добавил только условие с айди места

PS конечный вариант select * from properties WHERE (select count(*) from properties_to_places where properties_to_places.places=1 and properties_to_places.properties=properties.id)=0;

Bupyc ★★
() автор топика
Последнее исправление: Bupyc (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.