gpt4 book ai didi

多行具有相同键值的mysql连接查询

转载 作者:行者123 更新时间:2023-11-29 02:45:01 25 4
gpt4 key购买 nike

我在第三方数据库中有一个表,它有两个这样的表:

HISTORY
========
ID | ORDERED
1 PEAS
1 CARROTS
1 SPINACH
2 CARROTS
3 PEAS
3 CARROTS

PEOPLE
=====
ID | NAME
1 Jamal
2 Sharon
3 Mark

我正在尝试创建一个 MYSQL 查询,它将返回所有订购豌 bean 和胡萝卜的人。结果将是:

贾马尔,马克

当我尝试使用 OR 运算符时,我得到了所有三个人:

SELECT a.ID from people a 
INNER JOIN history b on a.ID=b.ID
WHERE b.ordered='PEAS' OR b.ordered='CARROTS'

当我尝试使用 AND 运算符时,我找不到人。

SELECT a.ID from people a 
INNER JOIN history b on a.ID=b.ID
WHERE b.ordered='PEAS' AND b.ordered='CARROTS'

在给定我必须使用的表结构的情况下,我如何编写查询来获取订购豌 bean 和胡萝卜的人的姓名?

最佳答案

加入两次,每个条件一次:

SELECT a.ID
FROM people a
JOIN history b on a.ID=b.ID AND b.ordered='PEAS'
JOIN history c on a.ID=c.ID AND c.ordered='CARROTS'

如果 history 可以包含重复项,或者为了防御,添加 DISTINCT:

SELECT DISTINCT a.ID
FROM ...

关于多行具有相同键值的mysql连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990862/

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