php - 如何连接共享 1 列且 ID 相同的 2 个表并向其中添加 WHERE 子句

标签 php mysql join where-clause

嗯,标题说明了一切。

我尝试了几种方法,但没有一个有效,直到现在我有了这个:

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/

相关文章:

由于 json,PHP 无法加载 Memcached 扩展?

php - 如何在 Laravel 中使用归一化更新多个图像

php - mysql中基于特定条件的声明值

php - magento - 需要为每个商店 View 指定图像类型和信息

java - 试图将 Activity 转换为 fragment

php - 如何更改 Symfony 2 中的默认 EntityRepository 基类?

mysql - 具有 4 个表的嵌套 MySQL 查询

PHP/MySQL : Get last record of table in a Join AND row count of the joined table

mysql - 当右表中没有对应行时,左连接返回所有 NULL 值

PHP ORDER BY 不工作嵌套查询