gpt4 book ai didi

MySQL : Select all row of table depends on foreign key?

转载 作者:行者123 更新时间:2023-11-29 18:14:54 25 4
gpt4 key购买 nike

我不知道实际问题是什么,但我的问题如下::

我有一个 MySQL 表table_name,如下所示:

+----+--------+-------+
| id | name | f_key |
+----+--------+--------
| 1 | abcd | 0 |
| 2 | efgh | 0 |
| 3 | ijkl | 0 |
| 4 | mnop | 2 |
+----+--------+-------+

id 是主键,f_key 是外键[引用同一个表中的 id]。

SELECT * FROM table_name WHERE id NOT IN (SELECT f_key FROM table_name WHERE f_key !=0);

是否还有其他好的(最短执行时间)MySQL 查询来获取如下输出:

+----+--------+-------+
| id | name | f_key |
+----+--------+--------
| 1 | abcd | 0 |
| 3 | ijkl | 0 |
| 4 | mnop | 2 |
+----+--------+-------+

编辑::

尝试对子查询的中等大小结果进行查询,但问题是:

  • EXISTS 针对 IN 高速执行:当子查询结果非常大。

  • IN 领先于 EXISTS:当子查询结果非常小时。

最佳答案

使用 Return row only if value doesn't exist 的正常习惯用法但通过自连接:

SELECT a.*
FROM table_name AS a
LEFT JOIN table_name AS b ON a.id = b.f_key
WHERE b.id IS NULL

关于MySQL : Select all row of table depends on foreign key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47108608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com