[英]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 Join
和shortcode
代碼36788,過濾兩個表之間匹配的行,並且知道您已經在serviceSubs
表上進行了測試並獲得3
行, serviceSubs
的結果也將為3
行,但是您執行select distinct
兩個keyword
和shortcode
,所以這個查詢尋找一個不同的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.