Php 用行和列比较两个表 我有两张桌子。表一和表二 表1中的字段名为cert_no,表2中的字段名为cer1、cert2、cert3、cert4、cert5 表2 cer1、cert2、cert3、cert4、cert5中未单独显示的值 如果两个表具有相同的值,则仅显示transfile_文件

Php 用行和列比较两个表 我有两张桌子。表一和表二 表1中的字段名为cert_no,表2中的字段名为cer1、cert2、cert3、cert4、cert5 表2 cer1、cert2、cert3、cert4、cert5中未单独显示的值 如果两个表具有相同的值,则仅显示transfile_文件,php,mysql,join,Php,Mysql,Join,尝试: 例如,如果您使用Microsoft SQL Server,则有一个函数可以返回具有相同文件名、相同类型和相同位置的两个表之间的不同行。在Oracle中,减号运算与EXCEPT相同 在MySQL中,没有实现“除”或“减”操作,这是一个不幸的现象,因为在某些情况下,它可以允许比备选方案更好的执行计划 这是一个有效的方法,并且比不在操作中使用更有效:认识到连接是SQL中最好的解决方案 enter code here SELECT a.* FROM table1 as a LEFT JOIN

尝试:


例如,如果您使用Microsoft SQL Server,则有一个函数可以返回具有相同文件名、相同类型和相同位置的两个表之间的不同行。在Oracle中,减号运算与EXCEPT相同

在MySQL中,没有实现“除”或“减”操作,这是一个不幸的现象,因为在某些情况下,它可以允许比备选方案更好的执行计划

这是一个有效的方法,并且比不在操作中使用更有效:认识到连接是SQL中最好的解决方案

enter code here
SELECT a.* 
FROM table1 as a 
LEFT JOIN table2 as b
ON a.tofolio = b.tofolio 
WHERE b.tofolio  IS NULL

如果还不算太晚,我建议您更改表的设计。我只尝试了第一个数据单独检查CertNo 1,其余所有数据都显示出来
SELECT * FROM table1 WHERE folio = '123456' AND cm_flag !='X' AND certificate_no NOT IN (SELECT CONCAT(certno1,',',certno2,',',certno3,',',certno4,',',certno5,',',certno6,',',certno7,',',certno8,',',certno9,',',certno10) FROM table2 WHERE tofolio = '123456')
enter code here
SELECT a.* 
FROM table1 as a 
LEFT JOIN table2 as b
ON a.tofolio = b.tofolio 
WHERE b.tofolio  IS NULL