2014-01-15 47 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