2017-09-27 7 views
0

これを行う方法がわからず、結合を試みても機能しませんでした。私は2つのテーブルを持っています。MYSQL内のあるテーブルのデータを他のテーブルと相互参照する方法

表1:

id name  admin_id 
------------------------------- 
1 admin   1 
2 joeuser   2 
3 administrator 1 
4 Franz   3 

表2:

id name  admin_id admin_name 
----------------------------------------- 
1 admin   1  adminstrator rights 
2 joeuser   2  adminstrator report rights 
3 administrator 1  adminstrator rights 
4 Franz   3  view only rights 

一つのテーブルとして2つの文句を言わない作業をマージ:

id  admin_name 
---------------------------------- 
1  adminstrator rights 
2  adminstrator report rights 
3  view only rights 

は、どのように私はそれが次の操作を行うのですか他のテーブルよりも短く、最初のテーブルが設定されたユーザーの数に基づいて展開されるという事実もあります。 2番目のテーブルは新しい名前付き権利を追加する場合にのみ増加します。

+3

これまでに何を試みましたか?なぜ結合がうまくいかなかったのですか?あなたの質問を投稿してください。 – Eric

+1

私たちにJOINを見せてください。何が起こったのか教えてください。間違いましたか?予期しない結果が出ましたか?あなたが私たちに言わないなら、「うまくいかない」とはどういう意味なのかわかりません。 –

+1

あなたが参加する必要があります – scaisEdge

答えて

1

LEFT JOINを使用すると、表に関連するレコードが外部キーで関連付けられていない場合でも、すべてのレコードが返されます。

例は次のようになります。

SELECT `users`.*, `access`.`admin_name` 
FROM `users` 
LEFT JOIN `access` 
    ON `access`.`id` = `users`.`admin_id` 

はここで参照https://dev.mysql.com/doc/refman/5.7/en/left-join-optimization.htmlためのリンクです。

+0

私は以前に試していましたが、それは働いてくれてありがとう、それは私が探していたマッチングではなく、 – Crashogre

関連する問題