简体   繁体   English

带条件的左联接查询

[英]LEFT JOIN Query With Condition

I have a query that LEFT JOINS another table to group rows. 我有一个查询,左联接另一个表来对行进行分组。 I am trying to only select records from the first table "googleimage" where the user_id is a certain number. 我正在尝试仅从user_id为特定数字的第一个表“ googleimage”中选择记录。 (user_id is a column in "googleimage" table. (user_id是“ googleimage”表中的一列。

SELECT g.*
FROM googleimage g
LEFT JOIN (SELECT image_id, COUNT(*) AS cnt
FROM googleimagefound WHERE status = 0
GROUP BY image_id) gf ON gf.image_id = g.id
ORDER BY  COALESCE(cnt, 0) DESC");

I have tried adding a new ON statement beiside the 我尝试在旁边添加新的ON语句

gf ON gf.image_id = g.id

I have also tried changing 我也尝试过改变

SELECT g.*
FROM googleimage g

to

SELECT g.*
FROM googleimage WHERE user_id = 1 g

but none of them seem to work, any help will be appriciated 但它们似乎都不起作用,任何帮助都会得到帮助

Try changing you query a bit like below 尝试更改您的查询,如下所示

SELECT g.*
FROM googleimage g
LEFT JOIN (SELECT image_id, COUNT(*) AS cnt
FROM googleimagefound WHERE status = 0
GROUP BY image_id) gf ON gf.image_id = g.id
WHERE g.user_id = 1 <-- add this condition
ORDER BY  COALESCE(gf.cnt, 0) DESC;

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

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