2017-07-18 67 views
-1

我有三个表:Table1,Table2和Lookup。表1和表2没有共同的列。查找用于标记:它具有两列,它们与Table1 ID与Table2 ID匹配。如何有效地查询两个表之间的查找表?

我想设计一个查询,我可以通过参数从Table1中获取行的数组,然后在结果中使用所有的ids,获取所有对应查找行的数组,然后使用它获取表2中所有相应标签的数组。

困难的方法是做第一个查询,以编程方式获得所有唯一ID,然后从基于这些的查找中进行选择等。但是这看起来效率很低。

我正在使用PHP,PDO和PostgreSQL。我能做什么?

+0

我们不能帮你,除非你表现出一定的样本数据和期望的结果。很难理解你需要什么。 –

+0

从'lookup'中选择时,你不能只使用'table1'和'table2'做一个'join'? – chris85

回答

1

试试这个:

SELECT * 
FROM Lookup 
LEFT JOIN Table1 ON Table1.id=Lookup.Table1_id 
LEFT JOIN Table2 ON Table2.id=Lookup.Table2_id