【问题标题】:SQL query on multiple tables对多个表的 SQL 查询
【发布时间】:2016-06-07 05:54:29
【问题描述】:

假设我有以下 2 个表:

Persons Table:  
Name  
ID[Primary Key]

Fruits Table:  
Name  
ID[Foreign Key Persons.ID]

这是一个表格结构,用于存储人和他们喜欢的水果。现在,如果我想找到所有喜欢“Apple”“Orange”的人(这将是动态的)。我该如何为此设计一个 SQL 查询?

【问题讨论】:

  • 这对您的问题来说是一个糟糕的设计。你必须设计一个many-to-many 关系
  • @wajeeh 可以提供详细信息吗?
  • 您需要PersonFruit 表,每个表都有其primary key。然后你需要Person_Fruits 表作为前两个表之间的连接。此表必须为每个表Foreign keys

标签: mysql sql-server


【解决方案1】:

您可以使用如下查询来获取所有喜欢苹果橘子的人的 ID:

SELECT p.ID
FROM Persons AS p
JOIN Fruits AS f ON p.ID = f.PersonsID
WHERE f.Name IN ('Apple', 'Orange')
GROUP BY p.ID
HAVING COUNT(DISTINCT f.Name) = 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多