firebird查询连接3表显示所有记录

时间:2014-12-01 15:23:27

标签: sql join

我有3个表需要加入,但我想在查询中显示所有

first table : itemtable
id itemname
1 item1
2 item2

second table : priceleveltable
id levelname
1 level1
2 level2

third table : relationtable
id itemid itemlevel price

我希望显示基于itemtablepriceleveltable的所有记录,如下所示:

itemname      pricelevel  price
item1         level1      null
item1         level2      null
item2         level1      null
item2         level2      null

我能这样查询吗?我尝试了左,右,内连接,但如果关系表上没有记录,它就不会显示记录

1 个答案:

答案 0 :(得分:1)

您必须在Table3上使用full outer join,并在第一个和第二个表上使用联接结果。

SELECT * from firstTable as ft
INNER JOIN secondTable as st
ON ft.id = st.id
FULL OUTER JOIN thirdTable as tt
ON ft.id = tt.id
WHERE ft.id IS NOT NULL