多个表的SQL查询?

时间:2013-11-04 15:37:01

标签: sql join

我希望从一个表中获取信息,然后使用它从第二个表中获取数据,然后从第二个表中引用数据以获取所有相关字段。即:

表1

ID 
--
69

表2

entity_id | id
----------------
69        | 134

表3

id  | postcode | cost
----------------------
134 | m21 6fh  | 850

我需要为table1中的每个条目执行此操作。我一直在尝试使用LEFT JOIN,直到我点击第三张桌子。

4 个答案:

答案 0 :(得分:0)

尝试以下

Select t1.*, t2.*, t3.* from table1
left join table2 on t1.id = t2.id
left join table3 on t1.id = t3.id -- change to t2.id = t3.id if you want to fetch only when id exists in table2

注意,如果您在任何地方使用内部联接,或者使用t2.id = t3.id代替t1.id = t3.id加入第三个表,结果将会改变。

答案 1 :(得分:0)

以这种方式尝试:

SELECT Table3.* FROM Table1, Table2, Table3
WHERE table1.ID = table2.EntityId
AND table3.id = table2.id

答案 2 :(得分:0)

这不起作用吗?

SELECT *
FROM table1
  LEFT JOIN table2 ON table1.ID = table2.entity_id
  LEFT JOIN table3 ON table2.ID = table3.ID

注意:如果你有table2数据,你将只获得table3数据,这是不可避免的。

答案 3 :(得分:0)

试试这个:

SELECT t1.*, t2.*, t3.* FROM Table1 t1
  LEFT JOIN Table2 t2 ON t2.entity_id = t1.id
  LEFT JOIN table3 t3 ON t3.id = t2.id