Я работаю над базой данных MySQL, и у меня нет возможности создавать дополнительные таблицы или изменять существующие. По сути, это таблица, где «дистрибьютор» может быть «посредником» другого реселлера. Оба приведенных ниже запроса работают, и мне интересно, какой из них мне следует использовать. Это большая таблица, поэтому производительность важна. Если кто-то предложит еще лучший способ достижения того же результата, буду признателен.
SELECT R1.reseller_id, R1.reseller_name, R1.distributor_id,
R2.reseller_name, R2.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 ... -be-faster