Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 使用update语句筛选sql行_Mysql - Fatal编程技术网

Mysql 使用update语句筛选sql行

Mysql 使用update语句筛选sql行,mysql,Mysql,我正在尝试编写一个查询,它可以得到无效的refby(与id相关),请检查以下数据库结构 | id | acnumber | refby | +----+-----------+--------+ | 1 | ac01 | 2 | +----+-----------+--------+ | 2 | ac02 | 1 | +----+-----------+--------+ | 3 | ac03 | 5 | +----+-----

我正在尝试编写一个查询,它可以得到无效的refby(与id相关),请检查以下数据库结构

| id | acnumber  | refby |
+----+-----------+--------+
|  1 | ac01      | 2      |
+----+-----------+--------+
|  2 | ac02      | 1      |
+----+-----------+--------+
|  3 | ac03      | 5      |
+----+-----------+--------+
正如您可以发现的,上表中并没有值为5的id,所以查询必须返回第三行作为结果

我试过

SELECT * FROM tbl.members WHERE refby != (SELECT id FROM tbl.members WHERE id = refby)
但这并没有给出正确的结果,请帮助,谢谢

SELECT * FROM members WHERE refby not in  (SELECT id FROM members)
这应该可以解决您的问题

您可以使用以下方法进行尝试:-


这应该是一个左连接,而不是在大型表上运行缓慢。。。假设id和refid是主键或唯一键(在数据集中读取唯一键),则此查询应返回相同的结果

SELECT
 *
FROM 
 members members1 
LEFT JOIN
 members members2
ON members1.id = members2.refby 
WHERE members2.id IS NULL
检查sqlfriddle

SELECT
 *
FROM 
 members members1 
LEFT JOIN
 members members2
ON members1.id = members2.refby 
WHERE members2.id IS NULL