2012-03-11 14 views
0

私はMySQLに少し慣れていて、勉強に慣れています。しかし、私は次のようなクエリに悩まされました: 私は2つのテーブルを持っています:表1は、ユーザによって作成されたリストの詳細を含んでいます。フィールドはlistid、listname、creatorid、createdat、membercountです。 表2は、各リストのメンバーのデータを格納します。フィールドはlistid、useridです。MySQLのクエリ:関連する属性の検索

私が処理する必要があるクエリは次のとおりです。次の条件の両方が満たされているフォーム(u1、u2)のすべてのユーザーのペアを確認してください。 i。 u1は少なくとも1つのリストを作成し、u2はそのリストのメンバーです。 ii。 u2は少なくとも1つのリストを作成し、u1はそのリストのメンバーです。

注:表2にlistidは、どのようにこの程度

+0

@ルギ私は、INNER JOINを使用して2つのテーブルから必要な属性を選択することができましたが、WHERE句の後に目的のタプルを取得するために使用する条件はわかりません。 – ritz

+0

ネストされたクエリについて学習しましたか? 't1.a、t3.bをテーブルt1から選択する(t2からcを選択する。ここでt2.a = t1.a)t3、t3.c = t1.c'となる。 –

+0

@LuiggiMendoza私の実際のクエリは2つの部分で構成されていました(編集した質問を参照してください)。最初の部分についてはNikoの解決策はOKでした。しかし、両方の部分にネストされたクエリを使用しようとすると、私は困ってしまいます。 – ritz

答えて

2

表1のlistidの外部キーのですか?

SELECT l.creatorid AS u1, u.userid AS u2 
FROM table2 AS u 
INNER JOIN table1 AS l ON l.listid = u.listid 

表2のすべてのユーザーと、対応するリストの作成者のIDを返します。

+0

彼はリスト作成者のIDとそのリストのメンバーであるユーザーのIDを必要とします –

+0

これはまさにこのクエリが選択するものです。 – Niko

+0

list1の作成者としてuser1があり、list1のメンバーとしてuser2があり、table2にuser1、user2、user3がある場合はどうなりますか? –

関連する問題