1

mySQLでの結合を理解するのに苦労しており、同様の例を見つけることができません。

2つのテーブルがあるとします:usersusers_info

ユーザーにはid、、フィールドがemailありますが、には、、、などのすべての情報があります。passwordusers_infonamesurnamestreet

したがって、次のようなユーザーを取得している場合:

SELECT * FROM users WHERE id = 43

そしてこのような彼らの情報:

SELECT * FROM users_info WHERE id = 43

基本的に2つの結果と2つのテーブルを取得します。

結合を使用してそれらをすべて一緒にする必要があることを理解しましたが、理解できません。

何か助けはありますか?

4

3 に答える 3

2

両方のテーブルが列によって相互に関連付けられているように見えるため、次のようにこの列を使用してテーブルを結合する必要がありますusersuser_infoid

SELECT 
  u.id,
  u.email,
  u.password,
  i.name, 
  i.surname, 
  i.street
FROM users           AS u
INNER JOIN user_info AS i ON u.id = i.id;

これにより、フィールドのみが選択されますid, email, ... etcただし、両方のテーブルからすべての列を選択する場合は、次を使用しますSELECT *

SELECT *
FROM users           AS u
INNER JOIN user_info AS i ON u.id = i.id;

を入力して特定のユーザーのこれらすべてのデータを取得する場合は、クエリの最後に句をid追加します。WHERE

SELECT *
FROM users           AS u
INNER JOIN user_info AS i ON u.id = i.id
WHERE u.id = 43; 

親切な詳細JOINについては、以下を参照してください。

于 2013-02-07T10:39:57.833 に答える
0

次のこともできます。

SELECT users.*, users_info.*
FROM users, users_info
WHERE users.id = users_info.id AND users.id = 43;

これは、「users テーブルからすべての列を取得します。users の id 列と users_info の id 列が互いに対応する行の users_info テーブルからすべての列を取得します」

于 2013-02-07T10:43:07.343 に答える
0

これが例です

SELECT * FROM users u
INNER JOIN users_info i
ON u.id=i.id

これは、 users テーブルと users_info テーブルを結合していることを意味します

例えば

ユーザー

id     name
----   -------
 1      abc
 2      xyz

ユーザー情報

id     email 
---    ------
 1      abc@aaa.com
 2      xyz@aaa.com

クエリが返されます

id    name   email
---   -----  -------
 1     abc    abc@aaa.com
 2     xyz    xyz@aaa.com

ここに素敵なチュートリアルがあります

于 2013-02-07T10:43:32.753 に答える