Я новичок в 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 выбрать правильную строку из таблицы счетов и иметь ее в наборах результатов.
Является ли производительность лучше, если я просто дублирую данные?
Спасибо, Dane
Ваш вопрос не имеет ничего общего с добавлением дополнительного индекса. Это связано с добавлением надлежащего JOIN для добавления столбца в ваш SELECT. Это поможет, если вы добавите некоторые примеры данных и ваш желаемый результат, и люди здесь могут помочь вам построить правильный запрос. Можете ли вы изменить свой вопрос, чтобы предоставить дополнительную информацию? Благодарю. :) –