Получить только одну запись после объединения из соответствующих столбцов в SQL - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть две таблицы, как показано ниже.

Table1
Join-Column
Join-Column-value1
Join-Column-value2
Join-Column-value3

Table 2
Join-Column            Other-Column
Join-Column-value1     Other-Column-Value-1
Join-Column-value1     Other-Column-Value-2
Join-Column-value2     Other-Column-Value-3

Я хочу объединить Table1 с таблицей 2 в столбце Join-Column и вывести любую соответствующую запись Other-Column. В приведенном выше примере Join-Column-value1 соответствует двум записям из таблицы 2. Я хочу вывести любой из Other-Column-Value-1, Other-Column-Value-2, но не оба одновременно. Join-Column-value2 соответствует только одной записи из Таблицы2, поэтому я также хочу вывести Other-Column-Value-3. Требуемый вывод на основе приведенного выше примера:

Other-Column
Other-Column-Value-1
Other-Column-Value-3

Как мне сделать это в MySQL?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете использовать агрегацию:

select t1.join_column, any_value(t2.other_column) other_column
from table1 t1
inner join table2 t2 on t2.join_column = t1.join_column
group by t1.join_column

В MySQL, функция агрегирования ANY_VALUE() приближается к тому, что вы, похоже, хотите - но есть и другие, детерминированные c альтернативы, такие как MIN() или MAX().

...