私は SQL にまったく慣れていません。他の質問のほとんどは検索して答えることができましたが、これは似たようなものを見つけるのが難しかったようです。これとこれは似ているように見えましたが、答えを見つけることができませんでしたが、それは簡単なはずです。
データベースを簡素化するために、2 つのテーブルをビューに結合しようとしています。
1 つのテーブル (a_main) には、ユーザー ID (UID) とユーザー名 (name) の間のマッピングがあります。2 番目のテーブル (log_points) には、2 人のユーザー (user1 と user2) を含むいくつかの列があります。2 人のユーザーはユーザー ID で識別されますが、ビューにユーザー名を表示したいと思います。
例
SELECT name, UID FROM a_main
のようなものを返します
Jeff 1234
SELECT date, user1, user2 FROM log_points
戻り値
2013-03-22 1222 1234
ビューがユーザーをIDではなく名前で返すようにしたいと思います。
ユーザーが 1 人だけの場合は、簡単な JOIN を実行できます。
SELECT date, a_main.name FROM log_points
INNER JOIN a_main ON log_points.user1 = a_main.UID
しかし、user2 を a_main.UID に参加させる方法もわかりません。
どんな提案でも大歓迎です!私はMySQLを使用しています。
EDITはここで答えを見つけました。
SELECT t1.name AS person1, t2.name AS person2
FROM log_points t
INNER JOIN a_main t1 ON t1.UID = t.user1
INNER JOIN a_main t2 ON t2.UID = t.user1;