[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Соединение двух таблиц по сложному условию
Гость_Alan
Добрый вечер дорогие форумчане!
Подскажите пожалуйста, есть две таблицы например users и state.
Мне требуется взять все записи из таблицы users и если есть запись в таблице state (состояние) принадлежащая пользователю (записи) нужно присоединить к результирующему набору, если нет то набор полей остаётся тем же но с заполненными NULL.
Например:
user_id
name

state_id
user_id
status

Таблицы примитивны, так для примера.
На ум приходит только вот такой запрос, но что то я ни как не пойму:
SELECT * FROM users as u
LEFT JOIN state as s ON u.user_id = s.user_id;


Но так приходит только одна запись, мне хотелось бы вытащить все записи таблицы users, если нет состояния тогда поля NULL.

Спасибо большое всем!
inpost
Можешь добавить:
WHERE u.`user_id` IS NULL OR u.`user_id` IS NOT NULL


Но это очень плохое решение :(

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Гость_Alan
Всё равно результирующий вывод:
Дублирующиеся пользователи и состояния, то есть если два пользователя и пять состояний выведет пять записей, хотелось бы только две записи пользователей и к ним если есть состояния.
Guest
SELECT * FROM users as u
LEFT OUTER JOIN state as s ON u.user_id = s.user_id;

Самое оно.
inpost
С этого бы и начинал. Что имеем и что хотим получить.
GROUP BY u.`user_id`


Хотя OUTER, возможно, более верный способ.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.