如何用3个表连接sql

t9aqgxwy  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(248)


我在努力学习 SQL .
我有个问题 JOIN 我想展示 ref_id, pro_name, class_name 但我不能。
我找到了有效的解决办法。
我的查询(不起作用)

SELECT
  ref_id, pro_name, class_name
FROM
  RC, RP, PP, LP
WHERE
  RC.ref_id = RP.ref_id
xhv8bpkk

xhv8bpkk1#

避免使用逗号 CROSS JOIN 你可以用 JOIN 改为逗号
这样地。

SELECT
  RP.ref_id, PP.pro_name, LP.class_name
FROM
  RP
LEFT JOIN RC ON RC.ref_id = RP.ref_id
LEFT JOIN PP ON PP.pro_id = RP.pro_id
LEFT JOIN LP ON LP.lec_id = RP.lec_id
s71maibg

s71maibg2#

不要在句子中使用逗号 FROM 条款。始终使用适当的、明确的、标准的 JOIN 语法。
你似乎想要:

select rp.pro_id, pp.pro_name, lp.class_name
from rp left join
     pp
     on rp.pro_id = pp.pro_id left join
     lp
     on rp.lec_id = lp.lec_id;

注意使用 left join . 这样可以确保所有行都在结果集中,即使其中一个或另一个联接没有找到匹配的记录。
据我所见,table rc 不需要回答这个具体问题。

相关问题