У меня есть две таблицы:Получить записи из одной таблицы и соответствующей таблицы
orders
poid | user | pid | payment_id
1 | 1 | 1 | abc123
2 | 2 | 2 | def345
orders_addon
poaid | user | poid | pid
1 | 1 | 1 | 3
2 | 1 | 1 | 5
Один представляет заказы, второй представляет аддоны пользователь может добавить в свой заказ.
Всегда существует строка в заказах, и может случиться так, что для заказа нет соответствующих заказов_addon.
Я ищу запрос, который возвращает соответствующие строки из заказов и orders_addon, если есть соответствующие.
ВЫБРАТЬ пользователь, PID FROM ... WHERE payment_id = 'abc123'
Если вернуться
user | pid
1 | 1
1 | 3
1 | 5
И тот же запрос должен возвращать только результаты из таблицы заказов, если нет соответствующих записей в таблица orders_addon.
ВЫБРАТЬ пользователь, PID FROM ... WHERE payment_id = «» def345
user | pid
2 | 2
Я считаю, это может быть сделано с помощью UNION
, но тогда я не смог бы соответствовать таблицам и это стало бы проблема с таблицей orders_addon не имеет payment_id
пожалуйста, попробуйте это и дайте мне знать –
Для первого примера этого возвращает только 2 строки, результат из таблицы заказов отсутствует. – maddo7
@ maddo7 обновленный запрос, пожалуйста, проверьте сейчас –