0

次の2つのテーブル「USERS」と「GROUPS」があります。

USERS 
-id
-name
-groupid

GROUP 
-id
-name

すべてのユーザーをグループ名とグループIDとともに返したいのですが。グループIDフィールドの外部結合である必要がありますか?

4

3 に答える 3

2

単純な INNER JOIN で十分です。

SELECT `USERS`.*, `GROUP`.name AS group_name
FROM `USERS`, `GROUP`
WHERE `USERS`.groupid = `GROUP`.id
于 2012-07-01T17:23:49.383 に答える
2

あなたはJOIN声明を見たいと思うでしょう

私の電話からこれを行っているので、適度に間違った構文を許してください。

編集:他の人の構文の方が優れています。ここは早すぎる

于 2012-07-01T17:25:28.780 に答える
1

グループに属していないユーザーが結果セットに表示されるように、とのLEFT JOIN間を使用できますが、グループ名と ID は NULL です。usersgroups

SELECT 
    a.*,
    b.name AS group_name
FROM
    users a
LEFT JOIN
    `group` b ON a.group_id = b.id

補足: テーブル名groupは予約済みのキーワードであるため、必ずバッククォートで囲んでください。

結果セットは次のようになります。

id       |       name       |       group_id       |       group_name
-----------------------------------------------------------------------------
1        |       John       |       5              |       ThisIsGroup5
3        |       Tim        |       3              |       ThisIsGroup3
6        |       NotInGroup |       NULL           |       NULL

上記のクエリを に変更LEFTするINNERと、2 つのテーブルが内部結合され、ユーザー "NotInGroup" が結果セットから除外されます。

于 2012-07-01T20:08:38.240 に答える