用于连接 5 个表的 SQL 查询 [重复]

Posted

技术标签:

【中文标题】用于连接 5 个表的 SQL 查询 [重复]【英文标题】:SQL Query for joining 5 tables [duplicate] 【发布时间】:2021-07-05 13:26:16 【问题描述】:

我有五张桌子:

Cutomer(CustomerID, name, surname)

PaymentMethod(cardNo,securityCode,expirationDate)

Ticket(ticketID, parkingnumber)

Has(CustomerID, CardNo)

Reserve(TicketID,cardNo)

如何在 pgadmin-4 中编写 SQL 查询来列出恰好预订了两张票的客户?

感谢您的帮助!

【问题讨论】:

您是否有任何示例数据,然后您可以使用这些数据显示您希望从该示例中获得什么结果?你试过什么?如果您可以展示一些您尝试过的 SQL,我们可以解释为什么它不起作用、要更改什么等。然而,通常不被接受的是那些只要求我们做家庭作业的问题 你。 【参考方案1】:

这是基本的INNER JOINs,具有分组功能 (GROUP BY) 以计算每位客户的门票。

然后您可以在HAVING 子句中使用COUNT 函数来应用特定条件。

类似:

SELECT
    c.CustomerID,
    COUNT(t.TicketID)
FROM
    Cutomer c
    INNER JOIN Has h ON h.CustomerID = c.CustomerID
    INNER JOIN Reserve r ON r.cardNo = h.CardNo
    INNER JOIN Ticket t on t.TicketID = r.TicketID
GROUP BY
    c.CustomerID
HAVING
    COUNT(t.TicketID) = 2

【讨论】:

【参考方案2】:

您可以使用joins 和group by,但您不需要所有表格。如果我理解数据模型,你只需要reservehas

select h.customerid, count(*)
from reserve r join
     has h
     on r.cardno = h.cardno
group by h.customerid
having count(*) = 2;

【讨论】:

以上是关于用于连接 5 个表的 SQL 查询 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

用于多个连接的 Spark SQL 广播 [重复]

SQL 服务器。从2个表中选择数据[重复]

连接 5 个表 - 1 个主表加上 4 个主表有多行,但主数据重复

带有 2 个表的 SQL Server GROUP BY

SQL怎么连接查询2个表?

用SQL语句创建四个表并完成相关题目