【发布时间】:2020-03-05 11:09:51
【问题描述】:
table: p
p_id/t_id/
1,35
2,35
3,35
4,35
5,35
6,22
7,22
...
对于表 p,p_id 的所有可能值都已注册
table: mps
p_id/m_id/value
2,1001,0
4,1001,2
7,1005,1
...
对于表:mps,只注册了几个 p_id 值。
我们如何加入两个表,使用以下语句?
输出必须是:p_id、m_id 和 value。
输入:m_id(即:1001)和t_id(即:35)。
它必须显示所有p_id组合,当它在表mps中没有找到数据时,只显示null。
output example:
p_id, m_id, value
1,1001,null
2,1001,0
3,1001,null
4,1001,2
5,1001,null
我尝试了不同的 SQL 查询,但是当 p_id 未在表 mps 上注册时,我没有得到输出:
SELECT p.p_id, mps.value, mps.m_id
FROM p LEFT JOIN
mps
ON p.p_id = mps.p_id
WHERE p.t_id = 35 AND mps.m_id=1001
【问题讨论】:
-
P_id未注册时如何确定m_id?例如,您是如何在输出1,1001,null的第一行中为 m_id 获得1001的。1001是否对所有行都固定? -
输入中引入了m_id。首先:查询 m_id=input 的所有行。第二个加入两个表。有帮助吗?