Доброго времени суток! За ранее спасибо за потраченное время. Суть: У меня есть две таблицы. Например, таблица с игроками и в этой таблице имеется колонка с id автомобиля. Если у игрока имеется автомобиль, то значение будет равно id автомобиля в таблице с автомобилеями, а если нет автомобиля, то стоит значение -1. Задача: Выбрать всех игроков у которых имеется автомобиль (player_car_id != -1), далее, выбрать автомобиль по этому ID из таблицы с автомобилями. Получается типо: SELECT `player_car_id` FROM `players` WHERE `player_car_id` != -1 ДАЛЕЕ SELECT * FROM `cars` where `car_id` = player_car_id ? JOIN / UNION?
Если нет автомобиля, то для этого придуман NULL, а не -1 SELECT * FROM players p INNER JOIN cars c ON p.player_car_id = c.car_id
попробую на пальцах объяснить неформально: JOIN используют тогда, когда в каждой строке результата нужны данные из объединяемых таблиц. неформально можно сказать, что это "объединение колонок" UNION добавляет к строкам одной выборки строки из другой выборки. неформально можно сказать, что это "объединение строк" ))) необходимо чтобы набор колонок в выборках совпадал. в вашем случае конечно нужен join. то же самое можно сделать и так Код (Text): SELECT p.player_car_id, c.* FROM players p, cars c WHERE p.player_car_id = c.car_id фактически это тот же inner join только без использования служебного слова join. https://dev.mysql.com/doc/refman/8.0/en/join.html https://dev.mysql.com/doc/refman/8.0/en/union.html