php - 多个相互依赖的 SQL 查询

标签 php mysql

我正在尝试运行多个 SQL 查询,所有这些查询都相互依赖。

我现在拥有的东西不起作用,所以我将展示我现在拥有的东西,并且我将解释它需要做什么。

SET @sub_cat_id = SELECT MAX(category_id) FROM exp_br_product_category WHERE product_id = '1234';
SET @prim_cat_id = SELECT parent_id FROM exp_br_category WHERE category_id = @sub_cat_id;
SET @prim_cat_title = SELECT url_title FROM exp_br_category WHERE category_id = @prim_cat_id; 
SET @sub_cat_title = SELECT url_title FROM exp_br_category WHERE category_id = @sub_cat_id;
$title1 = SELECT @prim_cat_title;
$title2 = SELECT @sub_cat_title;

预期的输出应该是 $title1 = maincat 和 $title2 = subcat。这样我们就可以从这两个最终变量构建一个 URL。

我研究过 stackoverflow,但我似乎找不到任何与我正在做的事情接近的东西。有人可以帮我设计一个可以正常工作的查询吗?

预先感谢您的帮助!

编辑

这两个表是 exp_br_product_category,它存储有关产品及其各自类别的信息;exp_br_category,它存储来自网站的所有类别信息(包括类别的父 ID 和 URL 标题)。

最佳答案

这可能是通过在查询中进行联接来检索数据的更好方法,即在单个查询中联接多个表:

SELECT
    prim_cat.url_title as prim_cat_title, sub_cat.url_title as sub_cat_title
FROM
    exp_br_product_category prod_cat,
    exp_br_category prim_cat,
    exp_br_category sub_cat
WHERE
    prod_cat.product_id = 1234 and
    prod_cat.category_id = sub_cat.category_id and
    prim_cat.category_id = sub_cat.parent_id
ORDER BY
    prod_cat.category_id desc
LIMIT 1

(我没有使用 max() 聚合函数,而是按降序对结果进行排序,并将查询限制为应获得相同结果的一个结果。)

也许您可能会阅读一些有关联接的内容 herehere .

但是,无论查询如何形成,它都不应该成为 500 错误的原因。这很可能是网络服务器配置错误,也可能是 .htaccess 文件中的错误,或者,对于特定的 PHP 和网络服务器配置,不太可能,只是 PHP 文件中的语法错误。

关于php - 多个相互依赖的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982277/

相关文章:

PHP - 执行附加查询

mysql - 如何创建MySQL分层递归查询

javascript - 使用 Javascript 将 HTML 页面添加到 WordPress 网站

php - 根据 id 和 parent_id 属性对集合(或对象数组)进行排序

php - 从 PHP 数组搜索 mySQL 表中的多列与固定

php - 函数 php 中的 if/else 语句未插入

php - 具有特定类的 mysql_fetch_object

MySql子查询2个表

php - 如何在 yii2 中向 sql 表的现有值添加值?

php - 在Web服务器上转换音频文件