【问题标题】:How do I efficiently query two tables with a lookup table in between?如何有效地查询两个表,其间有一个查找表?
【发布时间】:2017-12-23 21:37:02
【问题描述】:

我有三个表:Table1、Table2 和 Lookup。表 1 和表 2 没有共同的列。查找用于标记:它有两列将 Table1 ids 与 Table2 ids 匹配。

我正在尝试设计一个查询,我可以在其中获取参数以从 Table1 中获取行数组,然后使用结果中的所有 id,获取所有相应 Lookup 行的数组,然后使用它来获取数组表2中所有对应的标签。

最困难的方法是进行第一次查询,以编程方式获取所有唯一 ID,然后根据这些 ID 从 Lookup 中进行选择,等等。但这似乎效率很低。

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

【问题讨论】:

  • 除非您显示一些示例数据和所需的结果,否则我们无法为您提供帮助。很难理解你需要什么。
  • lookup 中选择时,您不能只用table1table2 来做join

标签: php sql postgresql pdo


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    相关资源
    最近更新 更多