sql 查询两张表其中一张表根据另外一种表排序
表A 序号 默认厂商
1 2
表B 序号 汽车厂商
1 奔驰
2 宝马
3 丰田
A 表默认厂商 = B表 序号
如何在查询完A表结果后 查询B表 B根据A表的结果排序 也就是 A.默认厂商对应的序号排在第一个
[解决办法]
select b.*from b join a on b.序号=a.默认厂商order by a.序号-- try
[解决办法]
[code=SQL]CREATE TABLE t1( xuhao INT, name INT)INSERT INTO t1SELECT 1, 2CREATE TABLE t2( xuhao INT, name VARCHAR(10))INSERT INTO t2SELECT 1, '奔驰' UNION ALLSELECT 2, '宝马' UNION ALLSELECT 3, '丰田'SELECT * FROM t1SELECT * FROM t2SELECT * FROM t2 LEFT JOIN t1 ON t2.xuhao=t1.NAME ORDER BY CASE WHEN t1.xuhao IS NOT NULL THEN 0 ELSE 1 END ------------------------xuhao name xuhao name2 宝马 1 23 丰田 NULL NULL1 奔驰 NULL NULL
[解决办法]
select b.* from b left join a on b.序号=a.默认厂商order by case when a.序号 is not null then 1 else 2 end,b.序号