php - 仅显示 1 个 mysql 查询中未分类的项目

标签 php mysql

我想知道是否可以转换下面的代码,以便它只需要 1 个查询而不是分配更多查询? items 表中填满了超过 10k 个项目,而下面的方法只需要这么长时间,是否有更快的方法来显示未分类的项目?

$CD1=mysql_query("select * FROM items");    
while($C1=mysql_fetch_array($CD1)){
    $sql=mysql_query("select * from category where sub='$C1[sub]'");
    if(mysql_num_rows($sql) == 0)
        echo "$C1[id]->$C1[sub]<br>";
}

最佳答案

您应该使用外连接和where子句来过滤没有类别的项目

SELECT i.* FROM items i LEFT OUTER JOIN category c ON i.sub = c.id WHERE c.id IS NULL

关于php - 仅显示 1 个 mysql 查询中未分类的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807447/

相关文章:

php - 我应该在 PHP/MySQL 中存储序列化对象还是 JOIN 表?

php - ajax wordpress 获取 404 错误无法从外部网站检索 json 并将其打印在我的数据表上

mysql - 有没有比使用 2 SELECT 更好的方法?

php - 使用 PHP 检查电子邮件 ID 是否已存在于数据库中

php - 显示来自计数查询的个人数据(mySQL/php)

javascript - 单击无需重新加载页面

php - 如何检测WordPress中是否存在手动摘录?

mysql - Windows MySQL 区分大小写

javascript - 如何使用 Knex 创建 TINYINT 列?

php - 由于时间戳 now(),SQL 插入忽略不起作用