|
|
|
| Здравствуйте
имеем
таблица users
- id
- name
таблица adverts
- id
- user (ИД пользователя из предыдущей таблицы)
- text
если нужно выбрать пользователей у которых есть объявления то я делаю
SELECT u.* FROM users u,adverts s WHERE u.id=a.user GROUP BY u.id
как выбрать пользователей у которых нет объявлений?
я делаю так
SELECT u.* FROM users u WHERE u.id NOT IN (SELECT a.user FROM adverts a)
может кто подскажет как сделать запрос более простым без вложенного запроса чтобы он делал меньше нагрузки на БД? | |
|
|
|
|
|
|
|
для: Дмитрий Смаль
(18.08.2011 в 11:20)
| | Как вариант можно использовать следующий запрос
SELECT u.*
FROM
users u
LEFT JOIN
adverts a
ON u.id = a.user
WHERE a.id IS NULL
GROUP BY u.id
| Однако, он, конечно, будет эффективнее, но вряд очень сильно. | |
|
|
|