web-dev-qa-db-ja.com

外部キーを使用して別のテーブルからデータを選択する

テーブルAとBが2つあります。

テーブルA

id | name | num

表B

id | date | roll

テーブルBのidは、テーブルAのidに関連する外部キーです。

Idが指定されているテーブルBのコンテンツを取得し、そのデータとともに、テーブルAからidが指定されている名前が必要です。

私はグーグルを行って、いくつかの奇妙なキーワードLEFT、JOINを見つけましたが、それを理解できませんでした。

1つのクエリで、テーブルBから日付とロールを取得し、テーブルAから名前を取得する必要があります。 (idは外部キーです)

残念ながら、使用しているプラ​​グインでは、コンマで区切られた複数のクエリを使用できないため、1つのクエリでSELECTsを両方実行する必要があります。

11
Yashas

テーブルの結合は、リレーショナルデータベースの基本原則です。あなたの場合、AとBはid列に関連しています。つまり、次のような構文を使用できます。

SELECT a.id, a.name, a.num, b.date, b.roll
FROM a
INNER JOIN b ON a.id=b.id;

INNER JOINは、AとBに一致するレコードがある行のみが表示されることを意味します。Aのすべての行とBの一致するレコードが必要な場合は、INNER JOINLEFT JOINに変更できます。逆に、BのすべてのレコードとAの一致するレコードのみが必要な場合は、RIGHT JOINを使用します。最後に、一致するかどうかにかかわらず、両方のテーブルのすべてが必要な場合は、FULL JOINを使用できます。

19

必要な結果を得るには、これらのテーブルを結合する必要があります。

SELECT b.*, a.name FROM tableB AS b INNER JOIN tableA as A ON (b.id=a.id);

このクエリは、テーブルBのすべてとテーブルAのnameを返します。テーブルBのIDはテーブルAのIDと同じです。

2
Edu C.

外部キーに関連付けられた2つのテーブルから結果を取得するには、テーブルを結合する必要があります。

あなたが結果を望むように、以下のクエリを見つけてください:

SELECT name, date, roll
FROM A
INNER JOIN B
ON A.id = B.id;
2
Govind

外部キーに関連付けられた両方のテーブル(つまり、共通列)からデータを取得するには、両方のテーブルを結合する必要があります。

両方のテーブルのデータを照合する場合は、INNER JOINを使用します。

> SELECT A.List_Of_columns,B.List_Of_columns  FROM Table1 AS A   INNER
> JOIN Table2 as B   ON A.ID=B.ID (Here Id is Common in both table).

両方のテーブルの一致するデータとtable1のすべてのレコードが必要な場合は、内部結合の代わりに左結合を使用します。 table2のすべてのレコードが必要な場合は、右結合を使用します。

0
KD29