gpt4 book ai didi

mysql - SQL 查询为 1 个值匹配 2 行

转载 作者:搜寻专家 更新时间:2023-10-30 22:07:26 25 4
gpt4 key购买 nike

我将如何编写查询来查找一列中的 2 个特定值与另一列中的每 1 个值的匹配项?我正在使用 MySQL 数据库。

例如:

| test_id | animal_type | classification_id |
----------------------------------------------
1 cat 456
2 dog 456
3 mongoose 456
4 cat 123

我想编写一个查询,查找表中出现的同一 animal_type 的 classification_id 分别为“123”和“456”的 2 行。

如果我编写以下内容,它将不起作用,因为我不知道如何在此查询中包含 animal_type。

SELECT *
FROM test_table
WHERE classification_id = '123' AND classification_id = '456'

我将如何编写查询来选择同时具有 123 和 456 作为特定 animal_type 的 classification_id 的所有行?

最佳答案

你可以使用:

SELECT animal_type
FROM test_table
WHERE classification_id IN (123, 456)
GROUP BY animal_type
HAVING COUNT(DISTINCT classification_id) = 2;

如果你需要整行:

SELECT *
FROM test_table
WHERE animal_type IN (SELECT animal_type
FROM test_table
WHERE classification_id IN (123, 456)
GROUP BY animal_type
HAVING COUNT(DISTINCT classification_id) = 2)

关于mysql - SQL 查询为 1 个值匹配 2 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46607998/

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