1

私は4つのテーブルを持っています... users、friends、articles、article_shares(書かれているとおり)

ユーザーは、記事を読むように招待するだけで、作成した記事を共有できます。私が見つけようとしているのは、まだ記事を共有するよう招待されていない (id 34) 記事の作成者 (id 63) の友人のリストです。

したがって、テーブル ユーザー:

user_id - name 
10         Dan
11         Doug
12         Chad
13         Ben
63         John

テーブルの友達

user_id - friends_id
63        10
63        11
63        12
63        13

テーブル記事

article_id - user_id_creator
34           63

テーブル article_shares

article_id - user_id_sharedWith
34           10
34           11

上記のデータから、ID 12 & 13 のユーザーを返したい.. chad & ben

これが私が試していることです:

select u.name, u.user_id, u.live_prof_pic from users u
join friends f on f.user_id = u.user_id 
join articles a on a.user_id_creator = f.friends_id
join article_shares as on as.articl_id <> a.article_id
where ((f.friends = '63') && (a.article_id = '34'))

単に 0 を返すだけです

何か案は?

4

1 に答える 1

2

これを試してみてください。

SELECT  c.friends_ID
FROM    articles a
        INNER JOIN users b
            ON a.user_Id_creator = b.user_ID
        INNER JOIN friends c
            ON b.user_ID = c.user_ID
        LEFT JOIN article_shares d
            a.article_ID = d.article_ID
WHERE   b.user_ID = 63 AND
        a.article_ID = 34 AND
        d.article_ID IS NULL
于 2012-10-11T05:46:19.847 に答える