显示没有主键的查询结果

时间:2012-02-07 22:52:11

标签: sql-server join

我想连接两个表(每个表有200列)所以这样做的目的是有一个包含400列的表,但是如何在没有主键的情况下获得结果?

id  a1  a2  a3 ... a200
-----------------------
1   23  4   5       7 
2   24  6   8       17
3   13  14  52      73
...


 id b1  b2  b3 ... b200
-----------------------
1   53  14  15      87 
2   64  16  18      87
3   73  74  12      83
...

所以我想要的就像是

a1  a2  a3 ... a200 b1  b2  b3 .... b200 
--------------------------------------
23  4   5       7   53  14  15      87 
24  6   8       17  64  16  18      87
13  14  52      73  73  74  12      83
...

我有这个

SELECT * a as T1 join b as T2 on T1.id=T2.id;

2 个答案:

答案 0 :(得分:2)

没有办法说SELECT (* EXCEPT some_col),抱歉。但是,通过将每个表的“列”节点从对象资源管理器拖到查询窗口上来生成列表非常容易,然后只需从列表中删除PK列即可。单击视图或表的“列”节点,然后将其拖到查询窗口中:

enter image description here


瞧!


enter image description here

答案 1 :(得分:1)

您必须在SELECT语句中指定每个单独的列:

SELECT  a1, a2, a3, ..., a200, b1, ..., b200
FROM    T1
        join T2 on T1.id = T2.id

显然这太麻烦了。

我会看一下为什么你有这么多列以及你的数据是否正确规范化了。或者,是否有可能简单地使用您需要更靠近UI的列(如果有的话?)