好吧,标题说明了一切。

我已经尝试了几项都不起作用的方法,直到现在我有了:

SELECT *
FROM ".$CFG['table']['menuaddons']." m
JOIN ".$CFG['table']['addons']." t1 ON m.addonparentid = t1.id
JOIN ".$CFG['table']['addons']." t2 ON m.addonparentid = t2.id
";


这将返回所有项目。现在,我只想显示m.addonparentid是变量$parentid的项目。

当我做:

SELECT *
FROM ".$CFG['table']['menuaddons']." m
JOIN ".$CFG['table']['addons']." t1 ON m.addonparentid = t1.id
JOIN ".$CFG['table']['addons']." t2 ON m.addonparentid = t2.id
WHERE m.addonparentid = '".$menuaddonsid."'
";


我得到一个空数组?而且当它起作用时,我想在DESC中名为addonsort的列名称上对.$CFG['table']['addons'].进行排序。

我已经检查了有关加入的所有信息,但找不到该怎么做。

最佳答案

在不知道a)您的意图和b)所涉及表的架构的情况下解决此问题有些棘手。为什么在查询中需要两次添加项表?

也许这行得通吗?

$query = "SELECT *
FROM " . $CFG['table']['menuaddons'] . " m
INNER JOIN " . $CFG['table']['addons'] . " t1 ON m.addonparentid = t1.id
WHERE m.addonparentid = " . $parentid . "
ORDER BY t1.addonsort DESC";


如果没有,请发布更多信息。
工作完成后,请考虑将其转换为使用PDO-当前查询容易受到SQL注入的影响,具体取决于变量的来源。

10-07 21:22