[英]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.