注册 登录
编程论坛 SQL Server论坛

关于SQL2000查询字句问题

qlong0728 发布于 2007-07-26 14:25, 725 次点击
有A1,A2,A3,A4共4个表
4个表中都有BB字段

我想查询4个表中BB字段内容包含的"CC"

用一条语句

SELECT *
FROM A1 CROSS JOIN
A2 CROSS JOIN
A3 CROSS JOIN
A4 CROSS JOIN
WHERE (A1.BB = 'CC') OR (A2.BB = 'CC') OR (A3.BB = 'CC') OR (A4.BB = 'CC')

这条句语不行,如果空值就会报错,如果有值重复记录太多

请问有什么办法解决呢?

[此贴子已经被作者于2007-7-26 14:26:21编辑过]

6 回复
#2
jinjimn2007-07-26 19:08
可以定義int not null
不知道是否正確
我也是菜鳥
#3
leixiangchao2007-07-27 08:48
这几个表联接的条件呢??????????
#4
cyyu_ryh2007-07-27 10:42
对呀
表之间的关联呢?
#5
qlong07282007-07-28 08:17
我只想用一条语句查4个表的BB字段是否包含有"CC"记录,我不想用4条语句来判断!
#6
fqbnet20082007-07-30 09:53
以下是引用qlong0728在2007-7-28 8:17:23的发言:
我只想用一条语句查4个表的BB字段是否包含有"CC"记录,我不想用4条语句来判断!

那基本上是不可能的, 因为表之间没有明确的关联关系,你这样查出来的数据冗余会很大的,而且如果表的数据量比较大的话,速度会非常慢的,甚至会死机的,不信你可以试一下 。

#7
lzalibabalr2007-08-01 07:55

SELECT bb
FROM A1
WHERE bb LIKE '%cc%'
UNION
SELECT bb
FROM A2
WHERE bb LIKE '%cc%'
SELECT bb
FROM A3
WHERE bb LIKE '%cc%'
UNION
SELECT bb
FROM A4
WHERE bb LIKE '%cc%'

1