select a.* from a left join b on a.id = b.id order by b.time
select * from a t order by (select time from b where id = t.id)
SELECT A.*,T.TIME FROM A LEFT JOIN T ON A.ID=T.ID ORDER BY T.TIME
select DB_Statements.id,DB_Statements.title,DB_Statements.tel,DB_Statements.uid,DB_Statements.ACCOMPANYING,DB_Statements.clevel,DB_Statements.addtime from DB_Statements left join DB_STATEMENTS_LIST on DB_STATEMENTS.id=DB_STATEMENTS_LIST.parentid order by DB_STATEMENTS_LIST.addtime desc还是不行
按B表的时间 你SELECT 里没有B表的时间字段 什么排序? 加进去吧
现在是加了where以后,数据重复显示了
现在是加了where以后,数据重复显示了 ???、 你这样问同,应该没有几个人能理解你的意思吧。
select DB_Statements.id,DB_Statements.title,DB_Statements.tel,DB_Statements.uid,DB_Statements.ACCOMPANYING,DB_Statements.clevel,DB_Statements.addtime from DB_Statements left join DB_STATEMENTS_LIST on DB_STATEMENTS.id=DB_STATEMENTS_LIST.parentid where DB_Statements.parentid=0 and DB_Statements.uid='57' and DB_Statements.title like '%%' order by DB_STATEMENTS_LIST.addtime desc 就是这样写数据重复了
SELECT A.*,T.TIME FROM A
LEFT JOIN T
ON A.ID=T.ID
ORDER BY T.TIME
你SELECT 里没有B表的时间字段
什么排序?
加进去吧
???、
你这样问同,应该没有几个人能理解你的意思吧。
就是这样写数据重复了
排序的时候不含b表的条数内容,只需要他的一个时间在这之后,还要加where条件
我本来就考虑了两种情况,
1对1用1楼的
1对多用2楼的
不过在子查询中可能要加max:
select * from a t order by (select max(time) from b where id = t.id)