我想在更多表(4+)之间进行复杂的 SELECT 排序和计数项目。
到目前为止,这就是我的路线:
SELECT
myl_u.id,
myl_u.label_real_address,
myl_u.ext,
COUNT(myc_c.contact_id),
COUNT(myl_r_c.release_id)
FROM
myl_users myl_u
LEFT JOIN myc_contacts myc_c ON myc_c.contact_type='l' AND myc_c.contact_id=myl_u.id
LEFT JOIN myl_releases myl_r ON myl_r.id=myl_u.id
LEFT JOIN myl_r_comments myl_r_c ON myl_r.release_id=myl_r_c.release_id
GROUP BY myl_u.label_real_address
ORDER BY COUNT(myc_c.contact_id) DESC
它工作了一半,但是当我添加 SQL 的后半部分时,它会显示意外的值,并且它也会以某种方式将它们加倍。
基本上我有myl_users(唱片公司的集合) myc_contacts(用户有多少收藏夹,contact_type='l' 表示它是关于 myl_users 而不是其他表) myl_releases包含音乐发布(如 EP、专辑,具有唯一 ID 和 myl_r_comments包含普通用户对这些版本的评论。
我设法按唱片公司有多少收藏夹(15、14、10、8..)来排序 - COUNT(myc_c.contact_id) 子句
但是当我添加下一个子句并使查询更大以按标签发布的总评论排序时,会出现意外。
有人可以指出我正确的方式吗?
我将根据您的需要评论和调整/澄清问题。
谢谢,新年快乐