1

MySQL Join 関数を理解するのに苦労しています。

ここに私が持っている2つのテーブルがあります:

ユーザー テーブル:

admin_id     username
  *1          peter93
   2       stackoverflowrocks
   3          user3*

管理者詳細表:

   admin_username     description        image
       pedro93          [text]        [image_url]
 stackoverflowrocks     [text]        [image_url]
        user3           [text]        [image_url]

通常、2 つのデータベースをリンクするには ID 番号を使用しますが、この場合は、admin_username = username である 2 つのテーブルを結合したいと考えています。

誰でも私を助けてもらえますか?それが役立つ場合、それはPHPスクリプト用です。

前もって感謝します!ピーター

4

3 に答える 3

7

それでいいです。好きなものに参加できます。

select * 
from user
    inner join admin
    on user.username=admin.admin_username
于 2012-08-23T13:12:57.440 に答える
1

文字列列による結合は、ID による結合と同じです

select * from admin_table
inner join admin_details on admin_table.username = admin_details.admin_username

ただし、ユーザー名列にインデックスを付けていることを確認してください。そうしないと、多くのレコードがある場合にクエリが遅くなります

于 2012-08-23T13:13:38.103 に答える
1

ほぼすべてのフィールドに参加できますが、データ型の不一致、インデックス作成などに注意することをお勧めします

全てのユーザー

SELECT u.*, a.*
FROM users AS u
LEFT JOIN admin AS a 
       ON u.username = a.username

管理者であるすべてのユーザー

SELECT u.*, a.*
FROM users AS u
INNER JOIN admin AS a 
       ON u.username = a.username

すべての管理者

SELECT u.*, a.*
FROM users AS u
RIGHT JOIN admin AS a 
       ON u.username = a.username
于 2012-08-23T13:21:12.943 に答える