您好我使用postgres,
我有三张桌子。
table 1
id1 | name
foo , jack
table 2
id3 | id1
orange, foo
apple, foo
table 3
id3|description
orange, vit.c
apple, vit. a & c
说id1 = foo;我想要的是在表2中找到与此对应的所有id3(在本例中为橙色和苹果),然后返回表3,其中所有行与表2中的所有id3匹配。
那是一个满口的,抱歉的那个人。我尝试了内连接,左连接,但不断给我更多不匹配的桌子。我可以连续进行,但我想知道是否有办法在步骤中完成所有操作? 如果一切顺利,当我搜索foo时,它应该返回vit.c和vit。一和C谢谢! 阿迪
答案 0 :(得分:1)
您提供的数据示例需要简单的连接:
select description
from table1 t1
join table2 t2 on t2.id1= t1.id1
join table3 t3 on t3.id3 = t2.id3
where t1.id1 = 'foo'
答案 1 :(得分:1)
您只需要一个标准WHERE
子句:
SELECT table_3.description
FROM table_1, table_2, table_3
WHERE table_1.id1 = table_2.id1 AND table_2.id3 = table_3.id3
请参阅此处的文档:
http://www.postgresql.org/docs/8.3/static/tutorial-join.html