我试图从我在下面尝试过的查询中的两个表中找出不匹配的记录,它工作正常,但我需要找到多列匹配,请帮助
res = mysql_query("SELECT * FROM emp WHERE emp.roll_no NOT IN (SELECT emp_no FROM emp_old)");
同样,我做了如下操作.. 它有错误..
emp
具有 rollno
和 name
emp_old
具有 emp_no
和 name
我需要找出这两列不匹配的内容
res = mysql_query("SELECT * FROM emp WHERE emp.roll_no AND emp.name NOT IN (SELECT emp_no AND name FROM emp_old)");
最佳答案
您可以尝试使用NOT EXISTS
SELECT
*
FROM
emp e
WHERE NOT EXISTS
(SELECT
1
FROM
emp_old
WHERE emp_no = e.emp.roll_no)
或者简单地
SELECT
*
FROM
emp
WHERE NOT EXISTS
(SELECT
1
FROM
emp_old
)
编辑我在查询中添加了另一列颜色,如果不匹配,则为红色,如果匹配的员工则为绿色
SELECT *
,(CASE WHEN eo.emp_no IS NULL THEN 'red' ELSE 'green') color
FROM emp e
LEFT JOIN emp_old eo ON (e.roll_no = eo.emp_no)
突出显示
while($row=mysql_fetch_array($res)) {
echo "<tr>"; echo "<td align='center' width='200'><span style='background-color:red;'>" . $row['emp_no'] . "</span></td>";
echo "<td align='left' width='200'><span style='background-color:red;'>" . $row['name'] . "</span></td>"; echo "</tr>";
}
echo "</table>";
关于php - 如果 2 列不匹配,mysql 会找到不匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21300936/