我有 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/