嗯,标题说明了一切。
我尝试了几种方法,但没有一个有效,直到现在我有了这个:
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 注入(inject)的攻击,具体取决于变量的来源。
关于php - 如何连接共享 1 列且 ID 相同的 2 个表并向其中添加 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23185392/