mysql多表条件查询_mysql 多表 多个条件 查询

mysql 查询关键字

SELECT  类名  FROM  主表名 INNER JOIN   子表名1 ON  主表=次表 同样的内容  WHERE 查询条件

多表请用 INNER JOIN连接 且加 同样条件内容

SELECT  类名  FROM  主表名 INNER JOIN   子表名1 INNER JOIN   子表名2 ON 主表=次表1同样的内容 and   主表=次表2 同样的内容  WHERE 查询条件

如果没有 主表=次表2 同样的内容 表示多个条件 不同内容

如  a.id=b.id  表示只取  a 表与b ID 相同的内容

2个表查询代码

SELECT

a.content_id, b.content_id, b.title, a.`status`

FROM

jc_content a INNER JOIN  jc_content_ext b

ON

a.content_id=b.content_id

WHERE

a.`status`=2 AND b.titleLIKE CONCAT('%','南陵','%')

3个或更多查询代码

SELECT

a.channel_id,a.content_id,a.status,b.title,c.shop_price

FROM

jc_content aINNER JOINjc_content_ext bINNER JOINw_shop_content_item cONa.content_id=b.content_idANDa.content_id=c.cid

WHERE

a.`status`=2 AND b.title LIKE CONCAT('%火龙果%')

GROUP BY channel_id

代码延伸

去重复 GROUP BY  重复内容的类名

比如 表3 w_shop_content_item 以cid有多个内容存储  可以去掉重复 只保留第一行 数据见图

mysql多表条件查询_mysql 多表 多个条件 查询_第1张图片

mysql多表条件查询_mysql 多表 多个条件 查询_第2张图片

代码分析

第一部分:

SELECT开始 a.content_id, b.content_id, b.title, a.`status`   到 FROM 前

表示 jc_content a 的表 content_id

jc_content a 的表 status

jc_content_ext b 的表content_id

第二部分:

FROMjc_content a INNER JOIN  jc_content_ext b ON a.content_id=b.content_id  WHERE

jc_content a主表   连接 次表jc_content_ext b

a表的content_id 与 b表的content_id一样的内容

第三部分

WHERE a.`status`=2 AND b.title LIKE CONCAT('%南陵%')

查询条件满足 a 表的 status =2  和 模糊查询 b表的 titlt 含有 南陵的字符

CONCAT('%南陵%')  可以防止 mysql 注入

注: 添加类名 可以增加查询速度  一万个数据中 快了10倍

你可能感兴趣的:(mysql多表条件查询)