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