gpt4 book ai didi

mysql - 查询混淆创建查询而不创建 View

转载 作者:行者123 更新时间:2023-11-30 00:58:23 25 4
gpt4 key购买 nike

问题来了我们有 3 个数据库变量(人员、事件、受邀)

Person(pid,passwd,fname,lname), 
Event(eid, start_time,duration,description,pid)
Invited(pid,eid,response,visibility)

我想做一个查询女巫会做的显示用户 X 创建的每个事件的所有人。

例如,David 创建了 eid= 1 和 3 的事件。(2 个事件)如果 Jany 和 Will 受邀参加开斋节 =1 ,并且 Mike 受邀参加事件 3它应该显示

EID PID
1 Jany
1 will
3 mike

我困惑的部分是 Person 和 Event 的 PID 是事件的创建者被邀请者的PID是被邀请者的PID。所以它的PID值不同。所以我不能自然地加入他们

我可以使用 create view mysql 命令解决这个问题,但我正在编写这段代码在 PHP 表单上,所以我想用一个命令完成这个命令。

我尝试的是这个

select *
from invited
where eid
in (SELECT eid
from person natural join event
where pid = 'DD')

但它没有给出我的预期。

如何在一个命令中编写代码而不使用“创建 View ”命令来解决此问题?

最佳答案

你在找这个吗?

SELECT e.eid, i.pid, p.fname
FROM event e JOIN invited i
ON e.eid = i.eid JOIN person p
ON i.pid = p.pid
WHERE e.pid = ?

示例输出:

| EID | PID | FNAME ||-----|-----|-------||   1 |   2 |  Jany ||   1 |   3 |  Will ||   3 |   4 |  Mike |

这里是SQLFiddle 演示

推荐阅读

关于mysql - 查询混淆创建查询而不创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364638/

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