gpt4 book ai didi

mysql - 复杂的mysql选择查询6

转载 作者:行者123 更新时间:2023-11-29 08:22:37 25 4
gpt4 key购买 nike

我有一个包含 2 列的表格:w_id(单词 id)和 txt_id(文本 id)

例如我有这个值:

-----------------
| w_id | txt_id |
-----------------
| 150 | 7 |
-----------------
| 151 | 7 |
-----------------
| 152 | 7 |
-----------------
| 152 | 7 |
-----------------
| 151 | 8 |
-----------------
| 160 | 8 |
-----------------
| 165 | 8 |
-----------------

我想获取 w_id 列表女巫仅在特定文本中对于这个表,如果我想获取文本 7 的单词,它将是 150 和 152。

我需要你的帮助来编写这个查询。我现在还在想自己解决这个问题。这张 table 可以很大。数百万行。所以我要认真写

我尝试了这个,但这是错误的:这个查询只给我 150,而不是 152。因为它在 7 个文本中出现了两次:

  SELECT w_id
FROM tablename
WHERE w_id
IN (
SELECT w_id
FROM tablename
WHERE txt_id = '7'
GROUP BY w_id
)
GROUP BY w_id
HAVING COUNT(w_id) = 1

最佳答案

SELECT  w_id
FROM tableName a
WHERE txt_id = 7 AND
NOT EXISTS
(
SELECT 1
FROM tableName b
WHERE a.w_id = b.w_id AND
txt_id <> 7
)
GROUP BY w_id

您也可以使用LEFT JOIN来做到这一点,

SELECT  a.w_id
FROM tableName a
LEFT JOIN tableName b
ON a.w_id = b.w_id AND
b.txt_id <> 7
WHERE b.w_id IS NULL
GROUP BY a.w_id

关于mysql - 复杂的mysql选择查询6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18926257/

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