0

想要替换表上的多个自连接。SQL中表上自连接的最大限制是多少

我有一个表 table_1,其列如下:

uid number(10),
a_name nvarchar(20),
aaId number (10),

uid 和 aaId的组合存在唯一约束。

表中存在的数据就像。每个 aaId 大约有 90 个 Uid。

现在我的查询就像

select aaId from table_1 
  inner join table_1 t1 on t1.uid=9 and t1.a_name like 'a'  
  inner join table_1 t2 on t2.uid=8 and t2.a_name like 'ab'  
  inner join table_1 t3 on t3.uid=7 and t3.a_name like 'ac'

我的问题是内部联接的数量已增加到 90 。由于表中的行数约为 20 万,因此该查询是否有效。或者,如果我可以做任何其他事情来替换大量的自连接。

请帮忙。

提前致谢。

4

2 回答 2

0

请尝试使用自联接和所需条件的此查询

从 table_1 t1、table_1 t2 中选择 aaId,其中(t1.uid=9 和 t2.a_name 像 'a')或(t1.uid=8 和 t2.a_name 像 'ab')

于 2015-03-12T09:39:25.770 回答
0

首先,为什么不使用 OR 语句的 WHERE 部分?

select aaId from table_1 
WHERE (table_1.uid=9 and table_1.a_name like 'a') OR 
(table_1.uid=8 and table_1.a_name like 'ab') OR
(table_1.uid=7 and table_1.a_name like 'ac')
于 2012-09-03T18:36:23.097 回答