Подзапрос MySQL внутри поля ORDER BY. (без внутренней регистрации)

Есть много вопросов, связанных с этим, но у всех одинаковый ответ на использование внутреннего соединения, который (я думаю) невозможен здесь. (скажите мне, если я ошибаюсь)

То, что я делаю сейчас, вызывает два разных запроса mysql для получения результата. Он работает отлично.

$db->query("SELECT * FROM `meta` WHERE `metakey` = 'category_order'"); $order = $db->fetch_assoc()['metavalue']; /*$order = 2,1,12,11,10*/ $db->query("SELECT * FROM `categories` WHERE `parent` = '0' ORDER BY field(ID, $order)"); $cats = $db->fetch(); 

Теперь, чтобы уменьшить количество запросов, я попробовал что-то вроде,

 $db->query("SELECT * FROM `categories` WHERE `parent` = '0' ORDER BY field(ID, (SELECT 'metavalue' FROM `meta` WHERE `metakey` = 'category_order'))"); 

Он не показывает никаких ошибок, но это дает мне неправильный вывод. Есть какой-либо способ сделать это?

РЕДАКТИРОВАТЬ

структура таблицы категорий,

 _________________ | ID | name | ----------------- | 1 | A | | 2 | B | | 11 | C | | 12 | D | | 10 | E | ----------------- 

структура мета-таблицы,

 ______________________________________ | ID | metakey | metavalue | -------------------------------------- | 1 | category_order | 2,1,12,11,10 | --------------------------------------