我有點新加入,所以我甚至不確定這是否可能。我一直在谷歌上搜索並嘗試一些東西..將MySQL不存在轉換爲INNER JOIN
我需要什麼:
選擇data.id其中相應的user2data.user_id不存在其中user2data.user_id =「X」
令人興奮的權利? :d
什麼工作:
SELECT * FROM data WHERE NOT EXISTS (SELECT * FROM user2data WHERE user2data.user_id=1 AND user2data.data_id=data.id) LIMIT 100;
但是,它的速度慢,即使所有3列索引。我從另一個SO回答中嘗試了一個OUTER JOIN用於此目的,但它比上述更甚。我需要的是一個INNER JOIN。
請讓我知道這是否實際上是可能的,或者如果有替代方案利用索引。
感謝和最誠摯
我建議一個*複合*'上超過user2data''(USER_ID,data_id)'指數。 – eggyal
您不能對不存在的數據進行內部連接。 – shawnt00
確保您加入的列已編入索引,然後外連接應快速。 – Barmar