Sql Query错误,可能是语法错误

时间:2015-11-28 08:58:13

标签: mysql sql

我坚持查询我想要跟踪他跟随的人跟踪者记录,因为following_label可能是1或0 所以我为追随者做了很好的工作,

SELECT firstname,lastname,type,image,username 
FROM relations
LEFT JOIN users ON relations.subscriber=users.id
WHERE relations.leader=9 
LIMIT 12

关系表结构是id,订阅者(关注者)和领导者(父母)

但是现在我想检查他所关注的同一记录,即检查是否 订户=领导者。

所以我尝试了这个但不幸的是它似乎没有用。

SELECT firstname,lastname,type,image,username,subscriber as sub 
FROM relations
LEFT JOIN users ON relations.subscriber=users.id
WHERE relations.leader=9 limit 12 AND
    SELECT CASE 
        WHEN subsriber = 9 
           THEN 1 
        ELSE 0 
    END as Salable, * 
FROM relations
  

我希望得到这样的东西   soundcloud.com/userid3218377271/followers如果你先检查三个   盒子他们是我的追随者,如果你鼠标在他们身上你甚至看到我   我跟随其中三个,最后一个不遵循   其中存在“后退”按钮

1 个答案:

答案 0 :(得分:0)

要获取用户关注的对象以及关注同一用户的用户,正确的命令为UNIONUNION ALL

SELECT firstname,lastname,type,image,username,subscriber as sub 
FROM   relations
       LEFT JOIN users ON relations.subscriber=users.id
WHERE  relations.leader=9 limit 12
UNION ALL 
SELECT firstname,lastname,type,image,username,subscriber as sub
FROM   relations
       LEFT JOIN users ON relations.subscriber=users.id
WHERE  relations.subscriber=9 limit 12

UNIONUNION ALL合并的查询需要具有相同的字段列表,或者至少需要相同的字段数和相同位置的字段的相同类型。

要了解谁在关注用户,并且如果用户正在追踪LEFT JOIN应该做的话

SELECT firstname, lastname, type, image, username
     , s.subscriber as sub
     , ISNULL(fb.leader) followback
FROM   relations s
       INNER JOIN users ON relations.subscriber = users.id
       LEFT  JOIN relations fb ON user.id = fb.leader AND fb.subscriber = 9
WHERE  s.leader=9 limit 12

如果followback为1,则用户不会跟回订阅者。 您可以更改followback的公式用户我使用了一个简单的用户,只是为了做一个例子。