07.09.2017, 15:15
Quote:
Приветствую. Столкнулся, как мне кажется, с довольно простой ситуацией, но что-то голова отказывается варить. В общем, есть две таблицы.
Структура первой такая: PHP Code:
PHP Code:
Во второй таблице содержатся записи о том, какие команды и у какого игрока "активированы" (то бишь, если у конкретного игрока есть запись во второй таблице с командой под ID 5, то она у него "активирована"). Собственно, нужно запросом вернуть весь список команд из первой таблицы (их имена) и, при этом, проверить, активирована ли команда, найдя данные во второй таблице ("id" из первой таблицы равносилен "command_id" из второй таблицы). Если активирована - 1, а иначе - 0. Растаскивать данную задачу на несколько запросов не хочется, ибо код тогда бессмысленно раздуется и усложнится, поэтому хотелось бы найти решение в виде одного запроса. Я знаю как вытащить только "активированные" команды, а вот остальные как-то не получается пока. |
PHP Code:
SELECT
commands1.id,
commands1.command_name,
commands2.command_id IS NOT NULL AS active
FROM commands1
LEFT JOIN commands2 ON commands1.id = commands2.command_id
GROUP BY commands1.id, commands1.command_name
PHP Code:
SELECT
id,
command_name,
(SELECT command_id FROM commands2 WHERE commands1.id = command_id LIMIT 1) IS NOT NULL AS active
FROM commands1;