簡體   English   中英

如何連接兩個具有冗余列值的表?

[英]How to join two tables with redundant column value?

我有兩個名為ServiceIOD和ServiceSubs的表,它們之間只有一個名為ShortCode的列是常見的。 因此,當我嘗試將這兩個表連接起來以獲得某些給定短代碼的組合結果時,它並沒有提供正確的輸出。 可能是因為ShortCode列保存了兩個表的冗余數據。 例如,我們可以在兩個表中多次找到shortcode = 36788。 我到目前為止嘗試過的查詢如下:

 SELECT distinct serviceIOD.keyword, 
        serviceIOD.shortcode 
   FROM serviceIOD 
        INNER JOIN serviceSubs 
            ON serviceIOD.shortcode = serviceSubs.shortcode 
            AND serviceIOD.shortcode = 36788

謝謝大家的任何幫助。 謝謝。

更新:

不正確的輸出的說明:我收到總共24行,當我通過這個查詢加入shortcode 36788,但是當我在兩個表為單獨查詢shortocde 36788我得到24行ServicesIOD表和3行的ServicesSubs表。 總共27行。 但是當我與上面的查詢一起加入時,我只會得到24行。

嘗試使用此代碼。通常,UNION避免重復輸入。

(SELECT serviceIOD.keyword, 
serviceIOD.shortcode 
FROM serviceIOD) 
UNION (select * from serviceSubs)
WHERE serviceIOD.shortcode = 36788

Inner Joinshortcode代碼36788,過濾兩個表之間匹配的行,並且知道您已經在serviceSubs表上進行了測試並獲得3行, serviceSubs的結果也將為3行,但是您執行select distinct兩個keywordshortcode ,所以這個查詢尋找一個不同的keyword ,其中shortcode值是36788,這就是為什么你會得到24行。

如果我寫錯了,請告訴我,以便將其刪除。

我已經通過以下查詢解決了這個問題:

 SELECT serviceIOD.keyword, 
 serviceIOD.shortcode 
 FROM serviceIOD where shortcode = 36788
 UNION select serviceSubs.keyword, 
 serviceSubs.shortcode  from serviceSubs where shortcode = 36788

感謝大家花費寶貴的時間來幫助我解決我的問題。 特別感謝@Optimuskck,因為我從他的建議答案中得到了我的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM