gpt4 book ai didi

mysql - SQL LEFT JOIN 到一个新行

转载 作者:行者123 更新时间:2023-11-29 12:05:52 26 4
gpt4 key购买 nike

我有两张 table
首先,NAMES,有 ID、NAME、ACTIV
二、ALT,有ID、NAMEID、NAME

现在我左加入第二列以从第一个表中获取事件名称的替代名称

SELECT m.NAME, a.NAME FROM NAMES M LEFT JOIN ALT A ON M.ID = A.NAMEID  WHERE m.ACTIV

结果是

NAME                NAME  
User1 User1Altname1
User1 User1Altname2
User2 null

我要找的是这个

NAME
User1
User1Altname1
User1Altname2
User2

最佳答案

我假设顺序很重要:

SELECT altname
FROM ((SELECT m.NAME, a.NAME as altname, 1 as isalt
FROM NAMES M JOIN
ALT A
ON M.ID = A.NAMEID
WHERE m.ACTIV
) UNION ALL
(SELECT m.NAME, m.NAME, 0
FROM NAMES m
WHERE m.ACTIV
)
) n
ORDER BY name, isalt;

这个想法是,您需要union all 来获取一个子查询中的名称和备用名称。剩下的就是order by。实际上,只有当您不需要额外的列时才需要子查询。

关于mysql - SQL LEFT JOIN 到一个新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com