页:
[1]
|
三个结构一样的表,怎么取不得想要的记录呢??
是sql server 的。
三个表一样的,表A,表B,表C
想取得里面的username='aaa'的所有记录。
我想一次性取出,你们看看行不行??
我用
select * from a,b,c where a.username='aaa' and b.username='aaa' and c.username='aaa'
和
select * from a,b,c where a.username=b.username and b.username=c.username and c.username='aaa'
试过都不行耶。 |
|
| select filed as fi1 from a,b,c where a.username='aaa' and b.username='aaa' and c.username='aaa' |
| RedCoin | 2004-8-11 07:01 AM |
|
SELECT * FROM a WHERE username='aaa'
UNION
SELECT * FROM b WHERE username='aaa'
UNION
SELECT * FROM c WHERE username='aaa' |
|
给你分析:
SELECT * FROM a WHERE username='aaa'
UNION
SELECT * FROM b WHERE username='aaa'
UNION
SELECT * FROM c WHERE username='aaa'
上面代码是可以的。有他的好处
下边可以:
select * from a,b,c where a.username='aaa' or b.username='aaa' or c.username='aaa'
不用用and |
|
SELECT * FROM a WHERE username='aaa'
UNION
SELECT * FROM b WHERE username='aaa'
UNION
SELECT * FROM c WHERE username='aaa'
其实算起来这种方法是最快的。只要你仔细分析一下就OK了。 |
| kingerq | 2004-8-14 04:11 AM |
|
Re: 给你分析:
[QUOTE][i]最初由 WSQ 发布[/i]
[B]SELECT * FROM a WHERE username='aaa'
UNION
SELECT * FROM b WHERE username='aaa'
UNION
SELECT * FROM c WHERE username='aaa'
上面代码是可以的。有他的好处
下边可以:
select * from a,b,c where a.username='aaa' or b.username='aaa' or c.username='aaa'
不用用and [/B][/QUOTE]
这两种都不行,第一种呢,union冲突
第二种,会重复,就是同一和记录会重复显示。 |
| RedCoin | 2004-8-14 05:31 AM |
|
| 你要确保UNION的3个结果集是完全对齐的,也就是说,3个结果集的字段顺序和字段类型要完全一致或者是兼容的,当然,以第一个结果集为准 |
|
| 我晕,有这么复杂吗,难道把and换成or不行吗?? |
|
晕。有相同记录是你的表分切的不好。或是你程序错误。
我设计的从来不会有相同记录的有也只是同一记录的子分类。都有标识来标志 |
|
| 第二种的重复可以用个标志好像叫disconse什么的记不清了。他要求相同的记录只取一次。OK |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.006255 second(s), 2 queries |