Мне нужно получить только уникальные строки из трех таблиц. Как я могу это сделать?Как удалить повторяющиеся строки из соединения (SQL)
У меня есть SQL-запрос:
SELECT *
FROM l_req
LEFT JOIN p_req ON (p_req.uid = l_req.uid)
LEFT JOIN r_req ON (r_req.uid = l_req.uid)
WHERE l_req.uid = 100931362
Таблицы архитектуры:
Table l_req
id column2 column3 uid
1 2 3 100931362
2 3 4 100931362
3 4 5 100931362
Table p_req
id column2 column3 uid
1 6 5 100931362
и т.д.
Результат запроса:
id column2 column3 uid id1 column21 column31 uid1
1 2 3 100931362 1 6 5 100931362
2 3 4 100931362 1 6 5 100931362
3 4 5 100931362 1 6 5 100931362
=> У меня есть повторяющиеся строки из ПРИСОЕДИНЯЙТЕСЬ.
мне нужен результат:
id column2 column3 uid id1 column21 column31 uid1
1 2 3 100931362 1 6 5 100931362
2 3 4 100931362 NULL NULL NULL NULL
3 4 5 100931362 NULL NULL NULL NULL
Вы не можете сделать это с помощью левого соединения. Если ваши условия совпадают несколько раз, они собираются присоединиться несколько раз. Можете ли вы объяснить, почему вам нужны нулевые значения для последующих результатов? Если это по соображениям производительности, возможно, вам стоит взглянуть на выбор из нескольких таблиц вместо объединения, запросов объединения или даже временных таблиц для лучшей подгонки. –
Можете ли вы объяснить, что вы пытаетесь сделать? Может быть, кто-то может дать полезный ответ другому решению. – ranisalt
@scrowler, мне нужны только уникальные значения, поэтому я хочу получить значение NULL. Надеюсь, вы можете помочь мне с действительным запросом. Добавлена дополнительная информация. – owl