有很多与此有关的问题,但所有使用内部连接的答案都相同,这是(我认为)在这里不可能。 (说我,如果我错了)
我现在正在做的是调用两个不同的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 |
--------------------------------------