mysql查询以显示不匹配的内容
我有两个MySQL查询 第一个显示了一个人所做的培训。第二个显示了工作需要哪些培训 第一次查询mysql查询以显示不匹配的内容,mysql,Mysql,我有两个MySQL查询 第一个显示了一个人所做的培训。第二个显示了工作需要哪些培训 第一次查询 select training from coursescompleted where person='$person' select j.job, r.training from riskstraining r join jobsrisks j on j.risk=r.Risk 第二次查询 select training from coursescompleted where person='$
select training from coursescompleted where person='$person'
select j.job, r.training from riskstraining r join jobsrisks j on j.risk=r.Risk
第二次查询
select training from coursescompleted where person='$person'
select j.job, r.training from riskstraining r join jobsrisks j on j.risk=r.Risk
例如,第一个查询(培训完成)的输出为:
第二个查询(需要培训)的输出是:
如何组合这些查询以显示完成工作所需的课程?根据下面的例子,如果我选择了“起重机操作员”的工作,结果应该是“驾驶执照课程”,因为此人已经完成了“急救课程”。联接将显示匹配的结果,而不是不匹配的结果
所需输出-选择“起重机操作员”
crane operator - driving license course
关于查询应该是什么的任何建议或指导?以下内容将起到作用:
select j.job, r.training
from riskstraining r join jobsrisks j on j.risk=r.Risk
left join
(select training from coursescompleted where person='$person') cc
on r.training = cc.training
WHERE cc.training IS NULL
您可以检查代码的模拟
我猜是这样。非常感谢,您的更新代码也能100%正常工作。如果将你的答案与同样有效的@zato相比,有什么更可取的解决方案吗?干杯@alfasin。再次感谢,不客气。多亏了你,我学会了另一种解决办法:)
select j.job, r.training from riskstraining r join jobsrisks j on j.risk=r.Risk
where r.training not in
(select training from coursescompleted where person='$person')