我有一个看起来像的查询
SELECT * FROM mytable mt
WHERE 1=1
AND mt.column_1 IN (SELECT id FROM employee WHERE salary >10000)
OR mt.column_2 IN (SELECT id FROM employee WHERE salary >10000)
我知道上面的查询看起来不好,即使它可以完成我的工作。我做了谷歌,但找不到帮助。我问的原因是实际情况,“雇员”表是临时表,在strored_procedure的较高级别上填充了数据,而这是我对该过程的最终选择语句。
我认为简单JOIN
就能解决问题
SELECT mt.*
FROM mytable mt
JOIN (SELECT id FROM employee WHERE salary >10000) B
on mt.column_1=B.ID or mt.column_2=B.ID
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句