gpt4 book ai didi

MySQL链接表交集查询

转载 作者:行者123 更新时间:2023-11-29 13:02:19 26 4
gpt4 key购买 nike

抱歉,如果我的问题听起来有误导性,我不完全确定如何表述它。

考虑以下表格:Fruit 具有 ID 和名称、Person 也具有 ID 和名称,以及 Person_has_Fruit(多对多链接表)具有 Person_ID 和 Fruit_ID。

什么交易可以检索拥有两个或更多特定水果的人?基本上我怎样才能交叉结果?

示例:

水果 table

ID | Name
-----------------
1 | Apple
2 | Pineapple
3 | Banana
4 | Lemon

人员表

ID | Name
-----------------
1 | Tom
2 | Bill
3 | John

多对多表

PersonID | FruitID
-----------------
3 | 1
1 | 2
3 | 2
2 | 3
3 | 3

当我询问拥有苹果、菠萝和香蕉的人时,我想要一个查询来检索我约翰。有什么建议吗?

我尝试过 'SELECT * FROM Person_has_Fruit WHERE FruitID in ('1', '2', '3')' 但这是不正确的,因为它检索具有其中之一的所有人员 ID,所以基本上它意味着值之间的或关系。

最佳答案

您希望在 Fruit 表和 Person 表的一些元组之间执行关系划分。

所以:

Select * From Person p
Where Not Exists ( Select * from Fruit f
Where (Name = 'Apple' Or Name = 'Pinneapple' or Name = 'Banana')
And Not Exists ( Select * from Person_has_Fruit pf
Where pf.PersonId = p.ID and pf.FruitId=f.ID))

关于MySQL链接表交集查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174752/

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