求高手解释一下

longds7 2010-04-12 12:15:00
我有两个表 aa, bb
aa表中
id name
1 A
2 B
3 C

bb表中
id number
1 1
2 2
3 3

我的查询语句是
select name+number from aa,bb
select name+number from bb,aa
这两句的显示顺序怎么不一样?
如果后面有很多查询条件我怎么得到我想要的顺序,有什么规律吗?
求高人指点。
...全文
78 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
老黎 2010-04-12
  • 打赏
  • 举报
回复
不能加order by吗?
按你想要的排序字段排序
--小F-- 2010-04-12
  • 打赏
  • 举报
回复
加索引也许能解决你的问题
Mr_Nice 2010-04-12
  • 打赏
  • 举报
回复
select name+number from aa,bb 首先这样的写法不是推荐的规范写法。

--
select name+number from aa,bb
--等价于
SELECT A.NAME+B.number
FROM aa A
CROSS join bb B
/*
A1
B1
C1
A2
B2
C2
A3
B3
C3*/
--
select name+number from bb,aa
--等价于
SELECT A.NAME+B.number
FROM bb B
CROSS join aa A

/*
A1
A2
A3
B1
B2
B3
C1
C2
C3*/


--表1 CROSS join 表2 表1中的每一行与表2中的每行进行匹配,其实是从左侧表1开始的。
百年树人 2010-04-12
  • 打赏
  • 举报
回复
关键要看你要什么样的结果

select name,number from aa,bb where aa.id=bb.id
select name,number from bb,aa where bb.id=aa.id

这样顺序就一样了
longds7 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kerafan 的回复:]
不能加order by吗?
按你想要的排序字段排序
[/Quote]

我用order by 试了可以
longds7 2010-04-12
  • 打赏
  • 举报
回复
我运行的后面有条件,加上条件后就不行了,不知道什么原因
yk32167 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 longds7 的回复:]
引用 3 楼 fredrickhu 的回复:
加索引也许能解决你的问题


索引怎么加?请说详细点,谢谢!!
我想要的就是2楼那样的结果
[/Quote]
2楼应该已经运行过了的,为什么你运行却得不到2楼的结果呢?
longds7 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
加索引也许能解决你的问题
[/Quote]

索引怎么加?请说详细点,谢谢!!
我想要的就是2楼那样的结果
longds7 2010-04-12
  • 打赏
  • 举报
回复
CROSS join 我用了,结果没有变化

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧