2011-02-25 94 views
1

我有一個字段X的表A,其中包含一個值列表,如1,2,3 然後是第二個表B,字段爲uid。 如果AX包含1,2,3我想從表B,其中uid是1或2或3從連接表中選擇多行

我嘗試了加入像行:

SELECT b.value FROM A a JOIN B b ON b.uid IN (a.X) 

這有點兒工作,但只有我當然得到1的結果在b.value。我如何獲得所有結果?我知道我可以使用第二個查詢,但它可以在一個?

(我知道這是不是很好用這樣的結構,應該使用N-N的表,但是這是由所使用的系統給定的)

回答

1

正如你在你的問題說明,這不是一個好的設計。我認爲有以下應該工作(雖然不是性能良好)

SELECT b.value 
FROM A a 
JOIN B b ON CONCAT(',',a.X,',') LIKE CONCAT('%,',b.uid,',%') 
+0

該多好啊這部作品,即時通訊不知道這是否是更好地使用這個或只是一個第二個查詢。我從數據庫中獲得大量的數據(我選擇了比這個更多的值),唯一的區別是字段b.value。 – Flo 2011-02-25 14:34:02