2013-11-15 64 views
1

的內容行,我需要一些幫助:SQL中使用,其中包含返回基於另一個表

我有一個名爲Countries表,其中有一個名爲鎮塔和一個名爲國家列。

然後我有一個名爲Stores的表,它有幾列(這是一個非常糟糕的表),但重要的是名爲Address1和Address2的列。

我想返回商店中Address1和Address2包含Countries表中的城鎮的所有行。

我有一種感覺,這是一個簡單的解決方案,但我只是不能看到它。

這將有助於如果你可以使用WHERE CONTAINS但在你的參數搜索另一個表的列?

例如

SELECT * 
FROM Stores 
WHERE CONTAINS (Address1, 'Select Towns from Countries') 

但顯然這是不可能的,有沒有一個簡單的解決方案呢?

回答

2

你接近

SELECT * FROM Stores s 
WHERE EXISTS (
    SELECT * FROM Countries 
    WHERE CONTAINS(s.Address1, Town) OR CONTAINS(s.Address2, Town) 
) 
+0

嗨,是正確的語法還是我應該編輯它?在第一個城鎮給我一個錯誤。感謝您的幫助 –

+0

@HannoOpperman,錯誤是什麼? –

1

這將是我第一次嘗試:

select * from stores s 
where 
    exists 
    (
    select 1 from countries c 
    where s.Address1 + s.Address2 like '%'+c.Town+'%' 
) 

編輯:哎呀剛纔看到你想要的 '包含' 條款。然後採取保羅的解決方案

+0

你的工作也是如此,只是它似乎並沒有在搜索中使用所有的城鎮。 –

+0

這很奇怪。嗯。試試這個(只是爲了好玩):'選擇不同的s。*從商店加入國家c在s.Address1 + s.Address2'%'+ c.town +'%'' – alzaimar

相關問題