LEFT JOIN:从会话中获取用户标识时出错

时间:2015-05-27 12:02:07

标签: mysql

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第3行“left join image on gallery.gal_id=image.gal_id WHERE”附近使用正确的语法

可以欣赏一些帮助

SELECT username,count(image.img_id) as no,gallery,gallery.gal_id 
FROM user 
left join gallery on user.userid=gallery.userid 
left join left join image on gallery.gal_id=image.gal_id
WHERE userid = '" . $_SESSION['userid'] . "'";

1 个答案:

答案 0 :(得分:0)

我认为这是您要编写的查询:

SELECT u.username, count(i.img_id) as num, gallery, g.gal_id 
FROM user u left join
     gallery g
     on u.userid = g.userid left join 
     image i
     on g.gal_id = i.gal_id
WHERE u.userid = '" . $_SESSION['userid'] . "'";

然而,它有潜在的问题。此查询将始终返回一行,因为它是一个没有group by的聚合查询。但是,如果用户可以拥有多个图库(不清楚),那么SELECT中只会出现一个图库。如果这是一个问题,你必须决定你想要发生什么。我建议您提出另一个问题,并提供样本数据和所需结果。