簡體   English   中英

MySQL查詢與2個表聯接

[英]MySQL query with 2 tables join

我有這樣的用戶

id    username
1       user1
2       user2
3       user3

封郵件是這樣的:

t_id   sent_by   id    msg
1        2        1     whatever
2        3        1     is
3        2        1     here

其中users.id是主鍵,而msgs.id是外鍵。 msgs表中, idsend_by發送的消息的目的地。

我想選擇並顯示send_by用戶名 ,只要登錄用戶(通過會話)是msgs.id即可

為了澄清問題,這是我想做的事情的偽代碼:

  1. 用戶已登錄。將其userid存儲到session
  2. 顯示發給我(登錄用戶)消息的用戶的不同用戶名。 在上面的示例中,如果我的用戶ID為1,則顯示為: user2, user3

我當時在考慮使用join,但最終對send_by和id進行了2次查詢。 看來不是有效的查詢。

我該怎么辦?

這是一個簡單的JOIN因為您只希望返回sent_by id的用戶名。

$sql = "SELECT DISTINCT
    users.username
    msgs.sent_by
  FROM users JOIN msgs ON users.id = msgs.sent_by 
  WHERE id = {$_SESSION['my_userid']}";
SELECT DISTINCT u.username, m.sent_by
FROM msgs m
INNER JOIN users u ON u.id = m.sent_by
WHERE m.id = {$_SESSION['userid']}
ORDER BY m.t_id DESC

暫無
暫無

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

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