我有一個不太理想的數據庫結構,我不得不使用。表1包含2個ID(讓我們稱它們爲id1,id2)。這些Id鏈接到另一個表Table2中的2行。我想獲取Table1的一些列,並使用id1和id2從Table2中獲取列。我真的必須兩次連接到同一個表以連接到不同的行嗎?還是有另一種更有效的方法來做到這一點?我的查詢超過20秒20秒。複雜的MySQL查詢永遠執行
SELECT t1.id1, t1.id2, t2.name, t3.name
FROM Table1 t1, Table2 t2, Table2 t3
WHERE t1.id1 = t2.id AND t1.id2 = t3.id AND t1.index = 2
當你說「20行「是表的大小還是結果集的大小?如果是後者,桌子有多大?他們的結構是什麼?此外,您需要學習ANSI標準連接語法,並使用條件的'on'子句。 'join'的where子句是如此過時。 –
我的代碼如下所示:http://pastebin.com/1uZnRuJw它返回有效數據,但在這些表中大約1000行總共需要30秒以上。 –