0
這裏是一個mySQL查詢。麻煩的是,我們需要一個前綴和後綴的訂單添加到theme.ref,使其匹配mySQL JOIN將文本添加到變量
SELECT * FROM content LEFT JOIN theme ON content.ID LIKE theme.ref
WHERE content.status = 1 AND content.parent = 11 AND content.type = 'team'
ORDER BY content.position ASC
在第一個環節,它說content.ID LIKE theme.ref
是有可能的主題前添加文本「ID」。之後的ref和','。可以做到這一點,如果是這樣做。
例如。 'ID'.theme.reg.','
顯然不起作用。
我會重寫結構,以免要求這樣做。我認爲它是緩慢的,因爲concat而不是因爲JOIN? –
簡而言之,由於連接謂詞中的concat用法,效率可能很低:)擁有這樣的連接謂詞極大地限制了MySQL引擎的方式,因爲它可以選擇最佳查詢計劃。 –
加入ax = bx(所謂的自然連接)對任何可用的算法都有好處:從a到b的嵌套循環(在bx上使用索引),從b到a的嵌套循環(在ax上使用索引),散列連接和排序 - 合併加入 - 所以RDBMS可以選擇任何並建立最佳計劃。在a.x = F(b.x)上加入會受到更多的限制 - 只能使用從b到a的嵌套循環(在a.x上使用索引)來完成,僅僅因爲在F(b.x)上不能有索引。哈希連接和排序合併連接很難實現,所以大多數RDBMS無法應用它們。 –