php - 如果 2 列不匹配,mysql 会找到不匹配的记录

标签 php mysql

我试图从我在下面尝试过的查询中的两个表中找出不匹配的记录,它工作正常,但我需要找到多列匹配,请帮助

res = mysql_query("SELECT * FROM emp WHERE emp.roll_no NOT IN (SELECT emp_no FROM emp_old)");

同样,我做了如下操作.. 它有错误..

emp 具有 rollnoname

emp_old 具有 emp_noname

我需要找出这两列不匹配的内容

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>";

Subqueries with EXISTS or NOT EXISTS

关于php - 如果 2 列不匹配,mysql 会找到不匹配的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21300936/

相关文章:

php - 使用 sqlsrv 将 php 7.2 连接到 MS SQL

PHP 更新 MySQL 中的多行

mysql - 转换后更新存储为 VARCHAR 的表中的 DATE

javascript - 如何从json中删除双引号

mysql - SQL语法错误创建表?

mysql - 通常/大多数情况下将 NULL 列存储在一个表中或创建 1 :1 relationship?

php - str_replace() 不会用重音替换字符

php - 为什么 PHP 中的 mySQL 返回空结果?

php 相对 url 到绝对 url 的转换,最终使用 base href html 标签

php - 选择中使用一个字段时模型不返回值