如何用 order by LEFT JOIN 三张表?
How to LEFT JOIN three tables with order by?
我已经尝试了很多次,但每次都出现 sql 语法错误,所以我将其分成两个查询,但我希望它是 one.Please 帮助 me.Follwing 是代码:
$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']));
这里是错误:
Warning: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'is ON is.imageID = i.imageID WHERE show_in_gallery= 'Y' AND
image_user = '8' ORD' at line 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
我已经尝试了很多次,但每次都出现 sql 语法错误,所以我将其分成两个查询,但我希望它是 one.Please 帮助 me.Follwing 是代码:
$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']));
这里是错误:
Warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'is ON is.imageID = i.imageID WHERE show_in_gallery= 'Y' AND image_user = '8' ORD' at line 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