簡體   English   中英

子查詢:根據匹配的用戶ID和團隊ID從一張表中進行選擇,並輸出二維數組

[英]subqueries: select from one table based on matching user ids with team ids and output 2 dimensional array

我想從login_users進行選擇,以獲取以下字段: nameusernameuser_id

我有一個帶有team_id以及相關的user_id的單獨表teams ,因此,例如,我可能有bob與team1,jack與team2,jim與team1,以及paul與team2(所有單獨的行,不是bob和paul->小組2)。 如果我提供一個帶有team_ id的函數,我希望能夠找到所有關聯的user_id ,然后將該數據與login_users匹配,以輸出一個二維數組,該數組包含所有團隊成員的nameusernameuser_id

SELECT username, user_id, name FROM login_users WHERE EXISTS ( SELECT user_id FROM teams WHERE team_id= $team_id );

我知道它與子查詢有關,我以前從未做過子查詢,而且我覺得自己走錯了路。 此外,我接下來將如何生成二維數組?

為什么只子查詢?? 為什么不JOIN

SELECT u.username, u.user_id, u.`name` FROM login_users u
JOIN teams t ON(u.user_id = t.user_id)
WHERE team_id= $team_id 

如果要使用“存在”子查詢執行此操作,則它必須是相關子查詢:

SELECT username, user_id, name
FROM login_users
WHERE EXISTS (SELECT user_id
              FROM teams
              WHERE team_id = $team_id and
                    teams.user_id = login_users.team_id
             );

您缺少user_id上的條件。 該版本的查詢的意思是“當team_id存在於teams時, team_idlogin_users獲取所有行”。

暫無
暫無

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

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