我有三张表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)。
英语不是我的母语,所以如果你不明白我需要什么帮助就可以问!
答案 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;