【发布时间】:2012-08-10 04:03:38
【问题描述】:
我正在加入 3 个表格。
table1.
grp_id | email_id
1 | 3
1 | 58
table2.
sam_msg_id | sam_subject
3 | Funnel
table3.
id | subject
58 | testing check
Desired Output:
id |grp_id|email_id|sam_subject|subject |
184|1 |3 |funnel | |
185|1 |58 | |testing check|
我尝试的查询:
SELECT table1.*, table2.sam_subject, table3.*
FROM table1
INNER JOIN table2
ON table2.sam_msg_id = table1.email_id
INNER JOIN table3
ON table3.id = table1.email_id
WHERE table1.grp_id = '1'
我在这里要做的是从 table2 和 table3 中获取主题列表及其 id,其中 id 位于 email_id 下的 table1 中。
当我尝试仅通过仅检查 table2 中的数据来使用一个内部联接进行此操作时,它正在工作。
我不熟悉使用内部连接,因此我看不出我做错了什么。
我正在使用 MySQL。
【问题讨论】:
-
table3中是否真的有匹配的相关行?如果不是,这应该是 table1 和 table3 之间的
LEFT JOIN -
您可能想将
INNER JOIN更改为LEFT JOIN -
你可能想使用
LEFT JOIN -
table1 和 2 与 table1 和 3 之间存在匹配行