我有一個MySQL數據庫與電影如下:Mysql高級SELECT或多個SELECTS?電影關鍵字
MOVIES(ID,標題)
KEYWORDS_TABLE(ID,KEY_ID)。[ID被 參考movies.id,KEY_ID是 refernced到keywords.id]
關鍵字(ID,關鍵詞)//這並不在我的例子沒關係..
基本上我有電影與他們的頭銜並繪製每個關鍵字,我想選擇與給定電影ID具有相同關鍵字的所有電影。
我想是這樣的:
SELECT KEY_ID FROM keywords_table WHERE ID = 9
做,在PHP和存儲陣列中的$ KEY_ID所有 的ID ..然後我建立 另一選擇看起來像:
SELECT movies.title FROM 電影,keywords_table WHERE keywords_table.key_id = $ KEY_ID [1]或 keywords_table.key_id = $ KEY_ID [2]或 ......... OR keywords_table.key_id = $ KEY_ID [N]
這有點兒工作,但它需要我們說話太多時間關於一個有成千上萬條記錄的數據庫。
那麼,有什麼建議?謝謝!
加入可能是更有效的...之後2100個記錄在另一個問題也不會失敗。 – MvanGeest 2010-06-16 18:57:11
我並不是說這兩個操作都可以用一個查詢替換爲多個'JOIN' – MvanGeest 2010-06-16 19:01:16
這就是爲什麼使用隱式連接不好的原因。這是一個未被注意到的交叉連接。使用隱式聯接是一個不好的做法。很高興看到您使用顯式語法,而不是僅僅修復隱式語法來刪除交叉連接。 – HLGEM 2010-06-16 19:06:40