MYSQL 查询未返回正确的行集

标签 mysql

我有两个表:

table_subcategories - sub_categories_id, sub_category_name, sub_category_image_path
table_subcategory_categories - subcategory_id, category_id

我想从 table_subcategories 中获取所有子类别,这些子类别在具有给定 Category_id 的“table_subcategory_categories”中不存在映射条目

我正在使用此查询,但结果不正确。

my $sql_query = "SELECT  TSC.sub_categories_id, TSC.sub_category_name, TSC.sub_category_image_path  from table_subcategories as TSC 
INNER JOIN
table_subcategory_categories as TSCC
ON
TSC.sub_categories_id = TSCC.subcategory_id
WHERE
TSCC.category_id != $cId ";

有人可以帮我解决一下这个问题吗?

最佳答案

使用左连接并检查是否没有匹配项:

SELECT TSC.* 
from table_subcategories TSC LEFT JOIN
     table_subcategory_categories  TSCC
     ON TSC.sub_categories_id = TSCC.subcategory_id AND
        TSCC.Category_Id = $cId
WHERE TSCC.category_id IS NULL;

关于MYSQL 查询未返回正确的行集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195814/

相关文章:

php - Laravel onDelete 级联多对多关系

mysql - sql减法怎么做

具有专门结果排序的 SQL 查询

mysql - 使用当天的mysql创建CSV文件

mysql - 如何获取 MySQL View 列表?

php - 仅当使用 MYSQL 中的函数时才收到错误消息

mysql - 如何使用 join 但只获取第一个表的行?

MySQL - 错误 1045,访问被拒绝

mysql - Vb.net更新datagrid View 问题

mysql - 如何使用值填充 MySQL 表中的一列而不出现 "Not all parameters were used"编程错误?