簡體   English   中英

需要找到一個查詢以在MySQL中返回某些結果

[英]Need to find a query to return a certain results in MySQL

我有兩個表,User和Relationshiphp。 我需要找到已向登錄用戶發送好友請求的所有用戶。

User Table                        relationship Table
------------         ----------------------------------------------
id | username         user_one_id | user_two_id | status | action_user_id

那是我的兩張桌子。 user_one_id是發送請求的用戶,而user_two_id是收件人。

我需要找到一個查詢,該查詢將返回登錄用戶收到的所有朋友請求。

如果嘗試以下操作,但僅返回登錄用戶的名稱和向其發送請求的用戶的ID。 沒有返回發件人的名字。

 var loggedInUser = req.user[0];
 connection.query("
 SELECT User.id, User.username, relationship.user_one_id, 
 relationship.status 
 FROM User INNER JOIN relationship ON User.id=relationship.user_one_id 
 WHERE User.id = ?",
 [loggedInUser], function(err, results, fields) {}

任何幫助將不勝感激。

您將需要在查詢中使用兩個INNER JOIN語句,一個用於user_one_id ,另一個用於user_two_id

SELECT userA.id, userA.username, userB.id, userB.username, status, action_user_id
FROM relationship
INNER JOIN User AS userA ON userA.id = relationship.user_one_id
INNER JOIN User AS userB ON userB.id = relationship.user_two_id
WHERE userA.id = ?

更新的答案:

有關更多詳細信息,請參見此處的鏈接: http : //sqlfiddle.com/#!9/af7ce/5

SELECT userA.id AS userA_id, userA.username AS userA_username, userB.id AS userB_id, userB.username AS userB_username, status, action_user_id, userC.username AS action_user_username
FROM relationship
INNER JOIN User AS userA ON userA.id = relationship.user_one_id
INNER JOIN User AS userB ON userB.id = relationship.user_two_id
INNER JOIN User AS userC ON userC.id = relationship.action_user_id
WHERE (userA.id = 1 OR userB.id = 1) AND userC.id != 1

暫無
暫無

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

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