Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql查询以显示不匹配的内容_Mysql - Fatal编程技术网

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='$

我有两个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='$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')