繁体   English   中英

如何按顺序左联接三个表?

[英]How to LEFT JOIN three tables with order by?

我已经尝试了很多次,但是每次它都遇到sql语法错误,所以我将其分为两个查询,但我希望它成为一个查询。请帮助我。以下是代码:

$pictures = $db->get_results(sprintf("SELECT imageID, image_name, image_date, username, userID 
            FROM images LEFT JOIN users ON images.image_user = users.userID 
            WHERE show_in_gallery = 'Y' AND image_user = '%d' 
            ORDER BY imageID DESC LIMIT 0, 24", $data['userID']));
$stats = $db->get_results(sprintf("SELECT STAT.imageID, STAT.image_views,STAT.unique_views,STAT.earnings 
        FROM image_stats as STAT LEFT JOIN images as IMG ON STAT.imageID = IMG.imageID 
        WHERE  image_user = '%d' 
        ORDER BY imageID DESC LIMIT 0, 24", $data['userID']));

这是错误:

警告:您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册以在'is ON is.imageID = i.imageID WHERE show_in_gallery ='Y'AND image_user ='8'ORD'第1行附近使用正确的语法

大概你想要什么? 不确定为什么尝试失败。

SELECT IMG.imageID, IMG.image_name, IMG.image_date,
    USR.username, USR.userID,
    STAT.image_views, STAT.unique_views, STAT.earnings 
FROM image_stats as STAT LEFT JOIN images as IMG 
    ON STAT.imageID = IMG.imageID
LEFT JOIN users as USR 
    ON IMG.image_user = USR.userID
WHERE  image_user = '%d' AND USR.show_in_gallery = 'Y'
ORDER BY imageID DESC LIMIT 0, 24

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM