MySql在第一次匹配时保留联接,并保留所有主表数据



我正在尝试从两个表执行左联接。

表1我需要返回所有的行,但是在连接表2中,如果有许多匹配,我只想在第一个匹配上"附加"数据。

表1

id
01 八月
01 9月
02 八月
03 9月

从现有的left join查询开始,您可以使用row_number()来标识";第一个";每id行,然后是条件逻辑:

select t1.id, t1.month, 
case when row_number() over(partition by t1.id order by t2.month) = 1 then t2.service_date end service_date
from table1 t1
left join table2 t2 on t2.id = t1.id

CCD_ 4对具有相同CCD_;您可能想要比一个月作为字符串作为order by列更稳定的内容。

相关内容

  • 没有找到相关文章