SQL |加入和重命名数据库

时间:2015-03-21 18:31:26

标签: sql sqlite

我有三张表medlem,funktion和children。我必须将所有三张桌子连在一起打印出他们说的一切。 Medlem和funktion分享" ID"作为主键。但是,table children有两列名为cid和pid,代表childrenID和parentID。我想我必须将cid和pid重命名为" id"所以medlem和funktion了解它是什么。

SELECT * 
FROM medlem 
   NATURAL JOIN funktion 
   NATURAL JOIN children 
where cid and pid = id;

这是它打印的内容http://gyazo.com/1880e8806f67576db8a84d995cf1aa98 问题在于数据库中超过100个成员,我只得到11个结果。如果一个成员不是父母或孩子,那么它应该是空白的,但如果他们是孩子/父母,则应该列为一个数字(id)。

英语不是我的母语,所以如果你不明白我需要什么帮助就可以问!

1 个答案:

答案 0 :(得分:0)

您没有获得所有记录,因为您只获取父母或孩子的记录。您需要执行外部联接以获取两者都不是的记录。有点像这样:

SELECT m.*, f.*, c1.pid, c2.cid
FROM medlem m
JOIN funktion f ON f.id = m.id
LEFT OUTER JOIN children c1 ON c1.cid = m.id
LEFT OUTER JOIN children c2 ON c2.pid = m.id;