PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP-如何在SQL查询中使用SQL查询大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有两个表:

>表类别(cat_id,类别)
>表category_details(cat_id,id,…)

我有下面的sql代码

$sql=MysqL_query("SELEct * from category");
while($rows=MysqL_fetch_array($sql)){
$id_count=$rows['cat_id'];      

$sql1=MysqL_query("SELEct * from category_details where cat_id='$id_count'");
$count=MysqL_num_rows($sql1);

}

我可以这样使用吗?

解决方法:

使用JOIN.

SELECT * FROM category LEFT JOIN 
   category_details ON category_details.cat_id = category.cat_id;

上面的查询将返回所有类别和关联的类别详细信息.

OP评论回应

SELECT    c.name,
          IFNULL(sub_c.@R_754_10586@l, 0) num
FROM      category c
LEFT JOIN ( SELECT   COUNT(*) @R_754_10586@l, cat_id
            FROM     category_details
            GROUP BY cat_id
          ) sub_c ON (sub_c.cat_id = c.cat_id);

完整的代码

<?PHP
    $query = "SELECT    c.name,
                IFNULL(sub_c.@R_754_10586@l, 0) num
            FROM      products_category c
                LEFT JOIN ( SELECT   COUNT(*) @R_754_10586@l, cat_id
                    FROM     product
                    GROUP BY cat_id
                ) sub_c ON (sub_c.cat_id = c.id)";

    $result = MysqL_query($query)or die(MysqL_error());

    echo "<table><tr><td>NameCount</td></tr>";
    while($row = MysqL_fetch_assoc($result))
    {
        echo "<tr><td>".$row['name']."(".$row['num'].")"."</td></tr>";
    }
    echo "</table>";
?>

MysqL

产品类别表

create table IF NOT EXISTS `products_category` (
  `id` int(11) NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `products_category`
--

INSERT INTO `products_category` (`id`, `name`) VALUES
(1, 'Erasmus'),
(2, 'Preston'),
(3, 'Ulric'),
(4, 'Gray'),
(5, 'Joseph'),
(6, 'Merrill'),
(7, 'Alan'),
(8, 'jeremy'),
(9, 'Solomon'),
(10, 'Andrew'),
(11, 'Galvin'),
(12, 'Craig'),
(13, 'Cameron'),
(14, 'Omar'),
(15, 'Addison');

产品表

create table IF NOT EXISTS `product` (
  `id` int(11) NOT NULL,
  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  `cat_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `product`
--

INSERT INTO `product` (`id`, `name`, `cat_id`) VALUES
(1, 'Wesley', 1),
(2, 'Graiden', 2),
(3, 'Cruz', 5),
(4, 'Hayden', 5),
(5, 'Kennedy', 6),
(6, 'Uriah', 8),
(7, 'Alan', 8),
(8, 'Cade', 1),
(9, 'Ryan', 5),
(10, 'Brody', 7);

以上将输出

Erasmus(2)
Preston(1)
Ulric(0)
Gray(0)
Joseph(3)
Merrill(1)
Alan(1)
jeremy(2)
Solomon(0)
Andrew(0)
Galvin(0)
Craig(0)
Cameron(0)
Omar(0)
Addison(0)

大佬总结

以上是大佬教程为你收集整理的PHP-如何在SQL查询中使用SQL查询全部内容,希望文章能够帮你解决PHP-如何在SQL查询中使用SQL查询所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: