2017-07-27 53 views
0

我有2个表,每个需要连接的100个列,结果应该包含除了主键列以外的所有列,这些列在开始时只会出现一次,如下所示:使用查询消除重复的列

table_1: 

pid  sname  sschool  snumber.............col 100 


table_2 : 

pid  sregion sdistrict slanguage............col 100 

我写了一个简单的内部联接查询:

select a.* , b.* 
    from table_1 inner join table_2 
    on a.pid = b.pid ; 

它导致像下面

加入两个表210

,但我想消除重复b.pid列...相反,我只是想保持一个a.pid列在beggining。

我们怎样才能消除?

P.S:我知道它不好的数据库设计和更好的数据标准化的,但缺乏时间不会允许它。

+0

不明白为什么使用MongoDB的或CouchDB的标签任何理由。感觉到mysql和sqlserver人会感觉相同。不要选择标签来“引起注意”。相反,只有标签与您的问题所涉及的实际事物相关。否则只会让人烦恼,并且不清楚你实际使用或谈论的是哪种技术。 –

+1

这种问题是设计不佳的症状 – Strawberry

+0

您只需从联接中的一个表中选择pId,选择'a.pId',然后列出所需的其他所有列。你真的有100列在桌子上?您可以编写'select a。*,b.col2,b.col3,.....,b.col100'(手动只写100列第二个表格) –

回答

1

做,这是在SELECT列表中未使用*的,或者至少是,只使用它们中的一个表的唯一方式被连接:

SELECT a.Col1, a.Col2, ... a.Coln, b.Col2, b.Col3, ... b.ColN 
FROM ... 

SELECT a.*, b.Col2, b.Col3, ... b.ColN 
FROM ...