2017-07-27 49 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 ...