3 つのテーブル、2 つのインデックス テーブル、1 つのデータ テーブルを取得しました
テーブルの構造は次のようになります。
users
:
id | name
--------+-----------
1 | John
2 | Mike
3 | James
idx
とidx2
:
user_id | user_id2 | action | date
---------+----------+----------+----------
1 | 2 | message | 2013-03-20
1 | 3 | message | 2013-03-21
3 | 2 | chat | 2013-03-21
以前は、2 つのテーブル、1 つのインデックス テーブル ('idx' という名前) と 1 つのデータ テーブル ('users' という名前) しかなかったので、クエリは次のようになりました。
SELECT * FROM idx inner join users WHERE idx.user_id='2' and idx.user_id2=users.id ORDER BY idx.date DESC
しかし、新しいインデックス テーブル (「idx2」という名前) が追加されました。構造は「idx」に似ています (「idx」と「idx2」を 1 つのテーブルに結合することはできないため、3 つのテーブルで作業する必要があります。一度)
だから今、私は3つのテーブルでクエリを作成することはできません
私はこのようなことをしようとしました:
SELECT * FROM idx,idx2 inner join users WHERE (idx.user_id='2' and idx.user_id2=users.id) or (idx2.user_id='2' and idx2.user_id2=users.id) ORDER BY idx.date DESC
しかし、これは機能しません。クエリは両方union
で構成されている必要があると思いますjoin
...
何か案は?
ありがとう!