Чтобы получить только первое совпадение при объединении таблиц в SQL, вы можете использовать различные методы в зависимости от используемой системы базы данных. Вот несколько примеров:
-
Использование подзапроса:
SELECT * FROM table1 LEFT JOIN ( SELECT * FROM table2 LIMIT 1 ) AS subquery ON table1.id = subquery.id;
-
Использование функции ROW_NUMBER() (для баз данных, поддерживающих оконные функции):
SELECT * FROM table1 LEFT JOIN ( SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY some_column) AS row_num FROM table2 ) AS subquery ON table1.id = subquery.id WHERE subquery.row_num = 1;
-
Использование CTE (общее табличное выражение):
WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY some_column) AS row_num FROM table2 ) SELECT * FROM table1 LEFT JOIN cte ON table1.id = cte.id WHERE cte.row_num = 1;
Обратите внимание, что в этих примерах предполагается, что вы хотите получить первое совпадение на основе определенного столбца или критерия. Измените предложение ORDER BY
в примерах, чтобы указать порядок сортировки для определения первого совпадения.