簡體   English   中英

sql中的多個where子句

[英]multiple where clause in sql

我不知道這是否可能,但我會嘗試一下。

我有3張桌子:

第一個表:(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']."')";

我得到的是收件人的用戶名,收件人的名字和姓氏。 我想要的是我將擁有接收者的用戶名,但是SENDER的名字和姓氏。 這可能嗎?

我認為您需要添加一個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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM