У меня есть следующий код, который дает нужный мне результат:(SQL) Несколько соединений на одном столе - более оптимизированный способ?
SELECT p.name,
p.hobby1_id, h.code, h.description,
p.hobby2_id, h2.code, h2.description
p.hobby3_id, h3.code, h3.description
FROM person p
LEFT JOIN hobby h ON h.id = p.hobby1_id
LEFT JOIN hobby h2 ON h2.id = p.hobby2_id
LEFT JOIN hobby h3 ON h3.id = p.hobby3_id
Есть ли более оптимизированный способ это? По возможности, избавиться от h2
и h3
. Спасибо
Покажите нам некоторые данные таблицы образцов и ожидаемый результат. – jarlh
Покажите, пожалуйста, каков смысл запроса. Маленький общий намек. Обычно левые соединения менее эффективны, чем «классические» внутренние соединения. Поэтому вы можете заменить их (или один из них) в том случае, если вы уверены, что hobby2 или hobby3 всегда не являются нулевыми. – Massimo
Есть ли способ форматирования текста здесь, как таблица, о которой я не знаю? У меня проблемы с вкладками и пробелами O_O спасибо – AwonDanag