喜悦国际村 » 数据库技术 » 三个结构一样的表,怎么取不得想要的记录呢??

页: [1]
kingerq2004-8-8 09:30 AM
三个结构一样的表,怎么取不得想要的记录呢??

是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'
试过都不行耶。

pswdf2004-8-10 07:47 AM
select filed as fi1 from a,b,c where a.username='aaa' and b.username='aaa' and c.username='aaa'

RedCoin2004-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'

WSQ2004-8-12 06:05 AM
给你分析:

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

WSQ2004-8-12 06:06 AM
SELECT * FROM a WHERE username='aaa'
UNION
SELECT * FROM b WHERE username='aaa'
UNION
SELECT * FROM c WHERE username='aaa'
其实算起来这种方法是最快的。只要你仔细分析一下就OK了。

kingerq2004-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冲突
第二种,会重复,就是同一和记录会重复显示。

RedCoin2004-8-14 05:31 AM
你要确保UNION的3个结果集是完全对齐的,也就是说,3个结果集的字段顺序和字段类型要完全一致或者是兼容的,当然,以第一个结果集为准

sadman2004-8-15 05:18 AM
我晕,有这么复杂吗,难道把and换成or不行吗??

WSQ2004-8-17 05:35 AM
晕。有相同记录是你的表分切的不好。或是你程序错误。
我设计的从来不会有相同记录的有也只是同一记录的子分类。都有标识来标志

WSQ2004-8-17 05:36 AM
第二种的重复可以用个标志好像叫disconse什么的记不清了。他要求相同的记录只取一次。OK


查看完整版本: 三个结构一样的表,怎么取不得想要的记录呢??


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.006255 second(s), 2 queries