Итак, есть два способа, которыми я могу достичь того же результата, в моем запросе указана дополнительная выборка:
SELECT nu.id, nu.username, nu.user_level, nu.phpbb_id, nu.real_name, nu.telephone, nu.email, nu.monster_points, nu.ref_points,
(SELECT lv.name FROM hh_user_levels lv WHERE lv.user_level = nu.user_level) AS 'level_name' FROM hh_user_new nu
ИЛИ с помощью переключателя PHP на оператор без подвыбора следующим образом:
switch($result['user_level']) {
case 0:
$level_name = 'Not Logged In';
break;
case 1:
$level_name = 'basic user';
break;
case 2:
$level_name = 'member';
break;
}
(на самом деле существует 10 вариантов, но я не думал, что вам будут интересны все из них!)
Итак, мой вопрос, который является более эффективным? Достижение этого с помощью подвыбора MySQL или с помощью переключателя PHP для каждого результата?
Ура!
Себ
Подвыборы общеизвестно убийства производительности … так что, я бы сказал, PHP.
Даже если, возможно, по практическим причинам я бы пошел на запрос MySQL с обычным JOIN …
Других решений пока нет …