Я работаю над базой данных MySQL, где я ограничен тем, что не могу создавать дополнительные таблицы или изменять существующие. По сути, это таблица, где «дистрибьютор» может быть «посредником» другого посредника. Оба запроса ниже работают, и мне интересно, какой из них я должен использовать. Это большая таблица, и поэтому производительность важна. Если кто -то сможет предложить еще лучший способ достижения того же результата, я был бы благодарен. < /P>
SELECT R1.reseller_id, R1.reseller_name, R1.distributor_id,
R2.reseller_name AS distributor_name, R2.company_name AS distributor_company_name
FROM reseller_master R1
LEFT JOIN reseller_master R2
ON R1.distributor_id = R2.reseller_id;
ИЛИ
SELECT R1.reseller_id, R1.reseller_name, R1.distributor_id,
(SELECT R2.reseller_name FROM reseller_master R2 WHERE R2.reseller_id = R1.distributor_id) AS distributor_name,
(SELECT R3.company_name FROM reseller_master R3 WHERE R3.reseller_id = R1.distributor_id) AS distributor_company_name
FROM reseller_master R1;
Подробнее здесь: https://stackoverflow.com/questions/793 ... ute-faster