2014-01-15 154 views
0

這裏是我的表:麻煩PostgreSQL的子查詢

表1:

ID | data1 | data2 
1 | xxx | xxx 
2 | xxx | xxx 

表2:

ID | table1_id 
20 | 1 
21 | 1 
25 | 2 
26 | 2 

表3:

ID | table2_id 
30 | 20 
31 | 21 
32 | 25 
33 | 26 <-- 

我已經用箭頭標記了相關的行(table3:ID = 33 | table2_id = 26

現在,我要與數據1和從表1數據2在這種情況下,匹配的ID:

我試圖東西...

SELECT t1."ID" 
FROM table AS t1 

INNER JOIN table2 AS tb2 
ON t1."ID" = t2."ID" 

INNER JOIN table3 AS t3 
ON t2."ID" = 26 

...但它什麼都沒有返回。有任何人對我的工作子查詢:)

+0

我敢肯定,在這樣的問題以前更智力挑戰的加入。 – Strawberry

+0

你已經用多個dbs標記了這個,但是在mysql't1。「中,ID」'等不是有效的表/字段標識符。它只是't1.ID',沒有引號。你很可能有包含代碼沒有檢查的語法錯誤。 –

+0

順便說一下,你加入了錯誤的字段:第一次加入時,t1.Id = t2.table1_id'不是't2.id'。對於第三種,您可能的意思是'on t2.id = t3.table2_id' –

回答

1

你在錯誤的領域

SELECT t1."ID" 
FROM table AS t1 

INNER JOIN table2 AS t2 
    ON t1."ID" = t2.table1_id 

INNER JOIN table3 AS t3 
    ON t2."ID" = t3.table2_id 
WHERE t3."ID" = 33 
+0

另外,表格別名爲'tb2'的拼寫錯誤。 - >'t2'。而現在缺少的WHERE條件:'WHERE t3。「ID」= 33' –

+0

非常感謝:-) – Spaanse