Aar*_*ber 1 sql count sql-order-by selected
对于SMF,我正在为我的部落成员制作一个名单(请不要带"你应该问SMF",因为这完全不相关;这只是上下文信息).
我需要它来选择所有成员(来自smf_members)并根据他们在smf_permissions中拥有多少权限来排序(因此脚本可以确定谁的等级更高).您可以使用以下方法检索有多少权限:COUNT(permission) FROM smf_permissions.
我现在正在使用这个SQL:
SELECT DISTINCT(m.id_member), m.real_name, m.date_registered
FROM smf_members AS m, smf_permissions AS p
WHERE m.id_group=p.id_group
ORDER BY COUNT(p.permission)
Run Code Online (Sandbox Code Playgroud)
然而,这只会返回一个排!如何返回几行?
干杯,Aart
你需要一个GROUP BY.我也用显式JOIN语法重写了.LEFT JOIN如果要包含权限为零的成员,则可能需要更改为.
SELECT m.id_member,
m.real_name,
m.date_registered,
COUNT(p.permission) AS N
FROM smf_members AS m
JOIN smf_permissions AS p
ON m.id_group = p.id_group
GROUP BY m.id_member,
m.real_name,
m.date_registered
ORDER BY COUNT(p.permission)
Run Code Online (Sandbox Code Playgroud)