0

私はSQLが初めてです。2 つの異なるテーブルから結果を取得する際に単純な問題があります。

データベースに 2 つのテーブルがあります。最初のテーブルには、2 番目のテーブルの行に対応する ID 参照を持つ列があります。ID が 2 番目のテーブルのすべての値に置き換えられるような結果を得るには、どのような SELECT を実行する必要がありますか。私が議論しているテーブルを視覚化するには:

TABLE_USERS
===========
id      username      group
--      --------      -----
1       jim           A
2       alice         A
3       brandon       B

TABLE_GROUPS
============
id      groupname         members
--      ---------         -------
A       designer          134
B       photographer      39

DESIRED_SELECTION
=================
id      username      group
--      --------      -----
1       jim           designer
2       alice         designer
3       brandon       photographer

ありがとう!

4

2 に答える 2

2

JOINが必要です:

SELECT
    u.id,
    username,
    groupname
FROM
    TABLE_USERS AS u
LEFT JOIN TABLE_GROUPS AS g
    ON u.group = g.id
于 2012-06-14T20:07:16.783 に答える
2

実際、2 つのテーブルを JOIN する必要があります。

SELECT * FROM
    TABLE_USERS LEFT JOIN TABLE_GROUPS 
    ON TABLE_USERS.group = TABLE_GROUPS.id

テーブルを結合する秘訣は、2 つのテーブルで一致する必要がある値を見つけ、 を使用onして SQL にそれらを一致させることです。このテーブルには ID 列があり、これを行うことができます = テーブルを結合し、ON等しい必要がある値をリストします。

両方のテーブルにすべての列が必要ない場合は、最終的なクエリで必要な列のみをリストするだけで済みます。これは、 の代わりにSelect *、必要な列をリストすることを意味します。以下に示すように、列が両方のテーブルに同じ名前で表示される場合は、必要な値を SQL が認識できるように、テーブル名を先頭に追加する必要があります。

SELECT TABLE_USERS.ID, Username, Groupname 
  FROM TABLE_USERS 
     LEFT JOIN TABLE_GROUPS 
     ON TABLE_USERS.group = TABLE_GROUPS.id
于 2012-06-14T20:20:00.900 に答える