首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

mysql 两个表联结 按照两个字段排序

2013-09-06 
mysql 两个表联合 按照两个字段排序有两个表,member(用户)和album(用户相册)。member内有这几个字段:uid(用

mysql 两个表联合 按照两个字段排序
有两个表,member(用户)和album(用户相册)。
member内有这几个字段:uid(用户id),chk(用户的审核状态,0或者1),其他字段省略。
album内有如下字段:uid(用户id),chk(相册或者照片的审核状态,值为0或1),其他省略。
member表内的部分用户在album表内有记录,而且可能有多条记录,比如张三在album内有三条记录,第一条记录的chk为0,第二三条记录的chk为1.
问题来了,我想列出所有的用户(无论album表内是否有其对应字段)。要求是:第一,member内chk值为0的用户最优先列出,第二,album表内如果某个用户对应的记录中,有chk值为0的按照优先级第二的顺序列出。
表的结构不能改,别人写死了。
求大神回复。。 sql mysql
[解决办法]
可以试试子查询吧!
[解决办法]
这个? 试试
select *
from member m 
left join album a on m.uid = a.uid
order by m.chk,a.chk
[解决办法]
我给你个sqlserver的写法,mysql不会,不保证能用,以后发到mysql去问会比较有效:
select *
from member m left join album a on m.uid=a.uid
order by m.chk,a.chk
[解决办法]

SELECT a.*
FROM member a
LEFT JOIN
(SELECT DISTINCT [uid], chk FROM album WHERE chk=0) b
ON a.[uid] = b.[uid]
ORDER BY a.chk, b.chk DESC

[解决办法]
这个建议是用外联接

热点排行