Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 如果其他行中没有使用这些值,如何选择这些值?_Mysql_Sql - Fatal编程技术网

Mysql 如果其他行中没有使用这些值,如何选择这些值?

Mysql 如果其他行中没有使用这些值,如何选择这些值?,mysql,sql,Mysql,Sql,这是我的桌子 | postid | type | parentid | | 1 | Q | null | | 2 | A | 1 | | 3 | Q | null | | 4 | Q | null | | 5 | A | 5 | | 6 | Q | null | | 7 | Q | null | | 8 |

这是我的桌子

| postid | type | parentid |
| 1      |  Q   |   null   |
| 2      |  A   |   1      |
| 3      |  Q   |   null   |
| 4      |  Q   |   null   |
| 5      |  A   |   5      |
| 6      |  Q   |   null   |
| 7      |  Q   |   null   |
| 8      |  Q   |   null   |
| 9      |  A   |   8      |
| 10     |  A   |   8      |
| 11     |  Q   |   null   |
| 12     |  Q   |   null   |
| 13     |  Q   |   null   |
| 14     |  A   |   13     |
| 15     |  A   |   13     |
因此在上表中,1是post id和父Q,它是post id为2的a的父

现在,我想用类型Q来标识post ID,它不是任何人的父项


如果你观察上面的表格,我会选择3,6,7,11,12。那么,如何编写查询以实现上述结果。

您可以使用
NOT IN
来执行此操作

SELECT * FROM yourtable t1 WHERE t1.postid NOT IN
(SELECT parentid FROM yourtable t2 WHERE parentid IS NOT NULL)

您可以使用
不在
中执行此操作

SELECT * FROM yourtable t1 WHERE t1.postid NOT IN
(SELECT parentid FROM yourtable t2 WHERE parentid IS NOT NULL)

不存在
听起来很适合这个

SELECT *
FROM t1
WHERE type = 'q'
AND NOT EXISTS (
    SELECT 1
    FROM t1 AS x
    WHERE x.parentid = t1.postid
)

不存在
听起来很适合这个

SELECT *
FROM t1
WHERE type = 'q'
AND NOT EXISTS (
    SELECT 1
    FROM t1 AS x
    WHERE x.parentid = t1.postid
)

解释你的答案让它更容易理解。解释你的答案让它更容易理解。