gpt4 book ai didi

PHP 多查询问题

转载 作者:行者123 更新时间:2023-11-30 22:35:27 25 4
gpt4 key购买 nike

我在使用 PHP 进行多重查询时遇到了一些问题。我的数据库有下表,其架构如下所示:

第一个表 - 用户

(PK) UserID,
UserFullName

UserID FullName

1000 Arthur Whitney

2000 Alex Schwartz

3000 Eva Kilpatrick

第二张 table - 邀请

(PK) RowID,
InvName, InvSender, InvSenderTotal, InvReceiver, InvReceiverTotal, InvStatus

RowID InvName InvSenderID InvSenderTotal InvReceiverID InvReceiverTotal InvStatus

1 Fair 1000 10 2000 10 Sent

2 Party 2000 45 1000 45 Sent

3 Cinema 2000 12 1000 12 Sent

4 Vacation 3000 15 1000 5 Expired

例如,当具有唯一 ID 2000 的用户 Alex Schwartz 登录时,我希望他可以看到邀请的名称、邀请发送者的姓名(如果他是邀请接收者)、邀请接收者的姓名(如果他是邀请发送者)以及邀请发送者和接收者的总数。

我设计了以下两个查询,它们产生了我想要的结果:

查询1

select i.InvName, i.InvSenderTotal, i.InvReceiverTotal, u.FullName FROM Invites as i INNER JOIN Users as u ON u.UserID = i.InvReceiverID 
WHERE i.InvStatus = 'Sent' AND i.InvSenderID = 2000

这显示了 Alex Schwartz 发送邀请时的邀请名称、邀请发送者和接收者的总数以及邀请接收者的姓名。此处的预期输出将是行 ID 2 和 3 的具体细节。

下面的查询显示了相反的结果:

查询2

select i.InvName, i.InvSenderTotal, i.InvReceiverTotal, u.FullName FROM Invites as i INNER JOIN Users as u ON u.UserID = i.InvSenderID 
WHERE i.InvStatus = 'Sent' AND i.InvReceiverID = 2000

因此,这使 Alex Schwartz 能够看到发送邀请的人的姓名以及相同的数据。此处的预期输出将是行 ID 1 的具体细节。

因此,我能够获得我想要的数据,但我需要两个不同的查询才能获得它。这在 PHP 中提出了问题,似乎只有一个查询执行。所以我的问题本质上是,有谁知道我如何将这两个查询合二为一?我也知道 multiQuerying 并尝试实现它,但也没有取得太大的成功。

提前感谢您的帮助。

最佳答案

为什么不使用UNION

select i.InvName, i.InvSenderTotal, i.InvReceiverTotal, u.FullName FROM Invites as i INNER JOIN Users as u ON u.UserID = i.InvReceiverID 
WHERE i.InvStatus = 'Sent' AND i.InvSenderID = 2000
UNION
select i.InvName, i.InvSenderTotal, i.InvReceiverTotal, u.FullName FROM Invites as i INNER JOIN Users as u ON u.UserID = i.InvSenderID
WHERE i.InvStatus = 'Sent' AND i.InvReceiverID = 2000

关于PHP 多查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667512/

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