产品表 t_product
和 产品扩展分类表 t_product_category
t_product
表字段 product_id
, category_id
, title
, seq
t_product_category
表字段 product_id
, category_id
一个产品可能有多个扩展分类,现在想要根据category_id
来查找产品,如果 t_product
没有,t_product_category
有可需要找出来,应该怎么写?
我这样写不可,不知道为什么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 p
LEFT JOIN t_product_category pc ON p.product_id = pc.product_id
WHERE p.category_id = <category_id>
OR pc.category_id = <category_id>
首先将 t_product
表与 t_product_category
表关联起来,然后使用 WHERE 语句过滤出满足条件的记录。如果想只返回唯一的一条记录,可以使用 DISTINCT
关键字来去重。
SELECT p.product_id, p.category_id, p.title, p.seq
FROM t_product p
LEFT JOIN t_product_category c ON p.product_id = c.product_id
WHERE p.category_id = {category_id} OR c.category_id = {category_id};
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
本文向大家介绍Mysql查询语句优化技巧,包括了Mysql查询语句优化技巧的使用技巧和注意事项,需要的朋友参考一下 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录。 查询的开销指标: 执行时间 检查的行数 返回的行数
我使用的是+++。 我得到了4个DELETE,只想要一个数据库请求,所以我用一个“;”连接了DELETE命令...但总是失败。 它会抛出以下错误: 但如果我将此SQL粘贴到PhpMyAdmin中,它总是成功的... 如果我在单个查询中编写它,它也会成功。 多谢帮忙!
如何理解这条Mysql模糊查询语句 我不太理解这两种写法字符串的拼接结果是什么
本文向大家介绍模糊查询 like 语句该怎么写?相关面试题,主要包含被问及模糊查询 like 语句该怎么写?时的应答技巧和注意事项,需要的朋友参考一下 第 1 种:在 Java 代码中添加 sql 通配符。 第 2 种:在 sql 语句中拼接通配符,会引起 sql 注入
题目描述 MySQL多对多查询,没有中间表 题目来源及自己的思路 a,b两表通过cid连接,但是cid在a,b两表都不唯一。关联查询会产生笛卡尔积. 现要求通过b的条件关联查询a的字段 现在自己设计了一种思路。 相关代码 select a.字段 from a where a.cid in (select b.cid from b where b.id = #{}) 你期待的结果是什么?实际看到的错
问题内容: 我正在尝试在MySQL选择查询中使用一条语句。 我在第一个语句之后出现错误。 为什么这不起作用?在MySQL查询中执行IF语句的正确方法是什么? 问题答案: 您使用的IF / THEN / ELSE构造仅在存储过程和函数中有效。您的查询将需要重组,因为您不能使用IF()函数来控制WHERE子句的流程。 可以在查询中使用的IF()函数主要用于在查询的SELECT部分中根据某些条件选择