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
)
解释你的答案让它更容易理解。解释你的答案让它更容易理解。