对于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)
但是,这只返回一个行!如何返回几个行?
干杯, 阿特
答案 0 :(得分:5)
您需要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)