1

我有 4 个表...用户、朋友、文章和 article_shares(如书面形式)

用户可以通过简单地邀请他们阅读来分享他们创建的文章。我试图找到的是尚未被邀请分享文章的文章创建者(id 63)的朋友列表(id 34)。

所以,表用户:

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 回答