select a.* ,b.* from a innerjoin b on a.code= b.code where b.x = (select max(b.x) from b where b.code = a.code )
select a.* ,b.* from a innerjoin b on a.code= b.code where b.id = (select top b.id from b where b.code = a.code order by b.x desc )
反正别名你自己取 最好不要用*来表示所有字段 如果是一对一的话 用innerjoin和leftjoin是一样的
SELECT a.code, MAX(b.date)
FROM a LEFT JOIN b
ON a.code = b.code
GROUP BY a.code
上面逻辑全错了。A表一条数据B表两条数据,结果需要两条数据,就应该是B表LEFT JOIN A表。
select * from b left join a on a.code=b.code
select a.*,b.* from a
left join b on a.code=b.code