php - 如何将多个mysql查询组合成一个查询

标签 php mysql codeigniter

我有 3 个不同的查询,如下所示:

$query = "select category_id,category_name from category";
$result = $this->Dbmodel->customQueryResult($query);

$query = "select location,location_name from sub_category";
$result_one = $this->Dbmodel->customQueryResult($query);

$query = "select category_date,category_month from other_category";
$result_two = $this->Dbmodel->customQueryResult($query);

这里我调用mysql服务器3次来执行我的查询并得到结果..

现在我正在考虑如何减少 mysql 调用,以便所有这 3 个 query 都在 one 单个查询中执行,因此只需要 1 个调用 mysql 服务器 并使用 php

向用户显示所有不同的结果

我该怎么做..任何帮助或建议都会很有帮助..提前致谢

最佳答案

您所描述的是一个 SQL UNION。

下面是一个示例查询,您可以使用它来实现您的目标:

SELECT category_id,category_name FROM category
UNION
SELECT location,location_name FROM sub_category
UNION
SELECT category_date,category_month FROM other_category

示例用法:

$query = 'SELECT category_id, category_name FROM category
            UNION
            SELECT location, location_name FROM sub_category
            UNION
            SELECT category_date, category_month FROM other_category';
$result = $this->Dbmodel->customQueryResult($query);

echo 'CategoryID: ' . $result['category_id'] . '<br />';
echo 'Category Name: ' . $result['category_name'] . '<br />';
echo 'Location: ' . $result['location'] . '<br />';
echo 'Location Name: ' . $result['location_name'] . '<br />';
echo 'Category Date: ' . $result['category_date'] . '<br />';
echo 'Category Month: ' . $result['category_month'];

请记住,如果您需要从不同的表中选择具有相同名称的字段来使用 SQL 别名。别名示例:

SELECT category_id AS `catID` FROM category

您可以使用 $result['catID'] 而不是 $result['category_id']。

关于php - 如何将多个mysql查询组合成一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688297/

相关文章:

php - 通过php的Mysql CREATEUSER命令

php - 将图像信息导入数据库时​​出现问题

mysql - 我怎样才能抽象出或删除这种依赖

php - CodeIgniter 购物车无法容纳超过 10 件元素

PHP + Javascript - 读/写 Cookie

php - 使用脚本在 Amazon S3 存储桶中创建子目录

mysql - 我怎样才能从 MySQL 中与疾病相关的症状中发现疾病?

mysql - WHERE 子句或 ON 子句中的 INNER JOIN 条件?

php - 如果 Controller 文件在 Linux 上为小写,CodeIgniter 返回 404

php - form_validation 类不加载 (codeigniter)