0
我是新來的MySQL,和我運行此查詢,MySQL冗餘索引替代?
SELECT item_id,amount FROM db.invoice_line WHERE item_id = 'xxx'
OR item_id = 'yyy'
...
AND invoice_id IN
(SELECT id_invoices FROM db.invoices
WHERE customer = 'zzzz'
AND transaction_date > DATE_SUB(NOW(), INTERVAL 6 MONTH)
AND sales_rep = 'aaa') ORDER BY item_id;
也就是說,從那裏的一個外鍵在另一個表中找到一個表中選擇一些列。
問題是我想在結果中還有客戶名稱。但是,在發票行表中找不到客戶名稱,它位於發票表中。
雖然我可以在表創建和插入時天真地創建重複索引,但我想知道是否有SQL方法從發票表中選擇適當的行並將其放在結果集中。
如果我只複製數據,性能會更好嗎?
感謝, 丹麥
你的問題與添加額外的索引無關。它似乎與添加適當的JOIN以將列添加到您的SELECT有關。如果您添加了一些示例數據和您想要的輸出,這將有所幫助,這裏的人員可以幫助您構建正確的查詢。你可以編輯你的問題提供額外的信息?謝謝。 :) – 2012-03-28 00:28:00