登录
首页 >  数据库 >  MySQL

如何用 MySQL 查询语句匹配两个表中特定类别,即使产品没有直接关联到该类别?

时间:2024-11-13 17:19:08 231浏览 收藏

小伙伴们对数据库编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《如何用 MySQL 查询语句匹配两个表中特定类别,即使产品没有直接关联到该类别?》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

如何用 MySQL 查询语句匹配两个表中特定类别,即使产品没有直接关联到该类别?

如何编写 mysql 查询语句以匹配两个表中的特定类别?

在产品表和产品扩展分类表中,产品可能具有多个扩展分类。如何编写查询语句以获取根据特定类别查找的产品,即使该产品没有直接关联到该类别也可以查找出来?

以下错误查询示例:

select p.*
from t_product as p , t_product_category as pc
where ( p.category_id in ( 1,2 ) or ( p.product_id = pc.product_id and pc.category_id in ( 1,2 ) ) )
group by p.product_id
order by p.seq asc, p.product_id desc
limit 0, 20

正确的查询语句如下:

SELECT p.*
FROM t_product AS p 
LEFT JOIN t_product_category AS pc ON p.product_id = pc.product_id 
WHERE p.category_id IN (1,2) OR pc.category_id IN (1,2) 
GROUP BY p.product_id 
ORDER BY p.seq ASC, p.product_id DESC 
LIMIT 0, 20

此查询使用 left join 来匹配 t_product 和 t_product_category 表,并使用 or 条件来获取符合 category_id 标准的记录。即使该产品本身没有直接关联到该类别,也可以查找出具有扩展分类的产品。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何用 MySQL 查询语句匹配两个表中特定类别,即使产品没有直接关联到该类别?》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>