gpt4 book ai didi

mysql - sql中的多个where子句

转载 作者:行者123 更新时间:2023-11-29 22:46:28 25 4
gpt4 key购买 nike

我不知道这是否可行,但我会尝试一下。

我有 3 张 table :

第一个表:(sender_id和receiver_id是引用loginportal表的外键)

messages
sender_id | receiver_id | message
3 | 1 | ...

第二个表:(req_id是引用请求表的外键)

loginportal
loginPortal_id | username | req_id
1 | admin | 1
3 | user | 2

第三个表:

request
req_id | firstname | surname
1 | john | doe
2 | jane | me

问题:

每当我使用此查询时:

"SELECT id, message_sender_id, 
message_title, message_body, sent_date, message_status,
username, firstname, surname
FROM messages m
INNER JOIN loginportal l
INNER JOIN request r
ON m.message_receiver_id= l.loginPortal_id
AND l.req_id=r.req_id
WHERE m.message_receiver_id=(
SELECT loginPortal_id FROM loginportal
WHERE username='".$_SESSION['user']."')";

我得到的是接收者的用户名和接收者的名字和姓氏。我想要的是我将拥有接收者的用户名,但发送者的名字和姓氏。这可能吗?

最佳答案

我认为您需要添加一个 message_id 字段,然后组合两个子查询,在新的 message_id 上查找发件人和收件人信息。沿着这些思路...还没有测试过

SELECT query1.username, query2.firstname, query2.surname

FROM (SELECT username, message_id FROM loginportal, messages WHERE loginPortal_id = receiver_id) AS query1,
(SELECT firstname, surname, message_id FROM request, loginportal, messages WHERE request.req_id = loginportal_req.id AND loginportal.loginPortal_id = messages.sender_id) AS query2

WHERE query1.message_id = query2.message_id;

关于mysql - sql中的多个where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29085858/

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