我在sqlite中有两个表:
名称
id name
--- -----
1 Tyrion
2 Arya
3 Snow
信息
id otherID
--- ---------
2 1
3 2
1
我如何才能得到这个结果?
2, Arya, 1, Tyrion
3, Snow, 2, Arya
1, Tyrion
如果我执行此查询:
SELECT info.id, names.name, info.otherID, names2.name
FROM info
inner join names on names.id = info.id
inner join names as names2 on names2.id = info.otherID
我只得到这个:
2, Arya, 1, Tyrion
3, Snow, 2, Arya
这不会出现:
1, Tyrion
如何获取可选字段otherid的列表?
答案 0 :(得分:1)
尝试使用LEFT JOIN
SELECT info.id, names.name, info.otherID, names2.name
FROM info
LEFT JOIN names on names.id = info.id
LEFT JOIN names as names2 on names2.id = info.otherID
答案 1 :(得分:1)
左连接是答案。
SELECT info.id, names.name, info.otherID, names2.name
FROM info
LEFT join names on names.id = info.id
LEFT join names as names2 on names2.id = info.otherID
如果info
表中的条目(加入语句中的右侧),您希望拥有names
的所有行(在连接语句中保留左表)。