两个表的SQL查询,忽略第二个表的结果集
问题描述:
我希望在两个表中转换查询,但结果集应该只显示来自第一个表的所有结果,以及来自与第一个表链接的第二个表的信息,但有很多链接信息,我只想要最后一个链接信息。例如两个表的SQL查询,忽略第二个表的结果集
表1
id_t1 | number | type
1 555 file
2 666 img
表2
id_t2 | id_table1_fk | date_in | description
1 1 04/07 aaaaaaa
2 1 05/07 bbbbbbb
查询
id_t1 | number | type | date_in | description
1 555 file 05/07 bbbbbbb
2 666 img null null
答
尝试这种情况:
SELECT
t1.*,
new_t2.date_in,
new_t2.description
FROM
t1,
( SELECT *
FROM t2
WHERE id_table1_fk = t1.id_t1
ORDER BY id_t2 DESC
LIMIT 1
) AS new_t2
答
select table1.*, table2.date_in, table2.description
from table1 left outer join table2 on table1.id_t1 = table2.id_table1_fk
+0
这并不总是按预期工作。由于您要加入具有一对多关系的表格,因此必须汇总来自表格2的结果。否则,SQL引擎将截断结果,但它可能不会按我们预期的方式截断它们。它也将查询的行为留给SQL引擎... –
左/右外部加入 –
欢迎来到Stack Overflow @Jonathan Leite。也许它只是格式化,但我无法理解您提供的示例数据。如果您将格式设置为列(如代码),以及一些示例数据和您想要的结果,则对问题的回答可能会变得更加清晰。您可能还想提供迄今为止所尝试的内容,以及结果有什么问题。 – Degan
我建议您在提出这些问题时,提供设置测试所需的DDL和DML。有了这些信息,您可以得到更准确的答案,并更快地获得答案。 – jeff6times7