MySQL

2009-08-13 20 views
13

'da bir birleşim için bir dizinin kullanımını zorlamak için sözdizimi nedir? Düzgün bir seçim yaparken "FORCE/USE/IGNORE INDEX" kullanımı belgelenmiştir, ancak belgeden nasıl anlaşılır? JOIN için yap.MySQL

Birleşik bir tablo için kullanılacak belirli bir dizini nasıl zorlarsınız?

+1

Sadece bir soru sordunuz ve ikinci bir kişiden 1 dakika sonra cevapladınız mı? (Biliyorum, 6 yıldır biliyorum, sadece merak ediyorum) – karatedog

+0

@karatedog: Evet, cevabı bulmaya çalışmak için yaşları harcadım, bu yüzden bir yere belgelemek istedim. Burada yardımcı olacağını düşündüm. – Drarok

cevap

29

FORCE/USE/IGNORE, katıldığınız tablo adından sonra ve bir ad kullanıyorsanız, diğer adın peşinden gider.

SELECT 
    t1.`id` AS `id_1`, 
    t2.`id` AS `id_2` 
FROM 
    `table1` t1 
LEFT OUTER JOIN 
    `table2` t2 
    FORCE INDEX FOR JOIN (`table1_id`) 
    ON (t2.`table1_id` = t1.`id`) 
+1

Ne ' GELEN id_2' t2.'id' AS id_1'' GİBİ t1.'id' SEÇ hakkında 'table1' t1 SOL JOIN' table2' t2 GRUP TARAFINDAN ve grup için zorlama kullanım endeksi ? – Crusader

+1

(Bu günleri bulmak için son derece kolay olan) belgelerin mevcut tüm seçenekleri göstermesi gerçekten iyi bir iş: http://dev.mysql.com/doc/refman/5.6/en/index-hints.html – Drarok