2016-06-19 1 views
1

簡単な質問ですが、私にとっては難しい解決策です=)
私はデータベースを持っています。 USERSにはUSERS_INFOとEVENTSという2つのテーブルがあります。だから、php - 間違った(?)データベースを使用したSQLクエリについて

USERS_INFO contain next fields: 
user_id 
user_name 
... 

EVENTS contains next: 
event_id 
user_id 
obj_id  (this element means, for examle, when user_1 will change information 
event   about user_2 in this table appears record like: 
              event_id=1 
              user_id=user_1 
              obj_id=user_2) 

、あなたは、user_idの情報を見ることができるように、私はフィールドのuser_idのテーブルUSERS_INFOから入手テーブルEVENTSからobj_1。 接続しました。

質問は正しいクエリを作成する方法ですか? は、私はこのような何かを参照してくださいする必要があります:

USER_1 user_4 some_event_like_edit

私は、クエリを作成することができますが、それは間違って動作します(user_4になめらかに変化しUSER_1手段)。私はした -

SELECT USERS_INFO.user_name, EVENTS.event FROM USERS_INFO,EVENTS WHERE USERS_INFO.user_id=EVENT.user_id 

私は別のフィールドobj_idのクエリを作成することはできません!! 結果はどこに入力しますかEVENTS.user_id = EVENTS.obj_id

私は何をすべきですか?あなたはちょうどこのように、二回userテーブルに参加する必要があり

答えて

0

SELECT u_1.user_name as Who_Changed,u_2.user_name as Who_Got_Changed, e.event 
FROM EVENTS e 
INNER JOIN USERS_INFO u_1 
ON (u_1.user_id=e.user_id) 
INNER JOIN USERS_INFO u_2 
ON (u_2.user_id=e.obj_id) 
+0

は、あなたの答えをありがとう!ここでu_1とu_2は何ですか?名前だけ?またはdbのレコード? –

+0

エイリアスです。テーブルを呼び出す方法です。 'u_1'は最初のユーザテーブルを意味し、' u_2'は第2のユーザテーブルを意味します。あなたはあなたが望む名前に置き換えることができます、それは重要ではありません。 – sagi

+0

私は理解しています!どうもありがとうございます! –

関連する問題