2

私は 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;
4

2 に答える 2

2

これを試して:

SELECT t1.name AS person1, t2.name AS person2
FROM log_points t
JOIN a_main t1 ON t1.UID = t.user1
JOIN a_main t2 ON t2.UID = t.user1;
于 2013-04-13T00:15:15.277 に答える