我有两张桌子
首先,NAMES,有ID,NAME,ACTIV
第二,ALT,有ID,NAMEID,NAME
现在我LEFT JOIN第二个列以获取第一个表中活动名称的alt名称
.animate()
结果是
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
答案 0 :(得分:1)
我假设订购很重要:
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
。实际上,只有在您不想要额外的列时才需要子查询。