关于mysql的多表联合模糊查询问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于mysql的多表联合模糊查询问题相关的知识,希望对你有一定的参考价值。
表1 c_news,表2 c_news_content,表3 c_product我想搜索三张表里的内容,多谢
参考技术A SELECT A.*,B.*,C.* FROMc_news A LEFT JOIN c_news_content B ON A.ID=B.ID
LEFT JOIN c_product ON A.ID=C.IDA.ID=B.ID, A.ID=C.ID 表示两个表相互关联的字段 参考技术B select * from c_news_content cnc join c_news cn on cnc.id = cn.catid join c_product cp on cnc.id = cp.catid
mysql数据库的多表查询,子查询,联合查询
/*多表查询*/
/*交叉连接*(表1条数*表2条数)*/
SELECT * FROM emp JOIN dept;
/*内连接(在交叉连接基础上加条件)*/
SELECT * FROM emp JOIN dept ON deptid=id;
SELECT * FROM emp JOIN dept ON emp.deptid=dept.id;
/*左外连接*(以左表为主表)*/;
SELECT * FROM product_type LEFT JOIN product ON product.`protype_id`=product_type.`protype_id`;
/*右外连接*(以右表为主表)*/;
SELECT * FROM product_type RIGHT JOIN product ON product.`protype_id`=product_type.`protype_id`;
/*子查询:把一个查询结果当作另一个查询的条件*/
/*找出索尼手机所属类别*/
SELECT protype_id FROM product WHERE pro_name LIKE ‘%索尼%4G手机%‘;
SELECT protype_name FROM product_type WHERE protype_id=(
SELECT protype_id FROM product WHERE pro_name LIKE ‘%索尼%4G手机%‘
);
/*找出所有属于手机数码的产品*/
SELECT * FROM product WHERE protype_id=(
SELECT protype_id FROM product_type WHERE protype_name=‘手机数码‘
);
/*找出所有属于手机数码或者电脑办公的产品*/
SELECT protype_id FROM product_type WHERE protype_name=‘手机数码‘ OR protype_name=‘电脑办公‘;
SELECT * FROM product WHERE protype_id IN(
SELECT protype_id FROM product_type WHERE protype_name=‘手机数码‘ OR protype_name=‘电脑办公‘
);
/*联合查询*/
CREATE TABLE app1(
aid INT PRIMARY KEY AUTO_INCREMENT,
aname VARCHAR(10),
adesc VARCHAR(50)
);
CREATE TABLE bpp1(
bid INT PRIMARY KEY AUTO_INCREMENT,
bname VARCHAR(10),
bdesc VARCHAR(50)
);
INSERT INTO app1(aname,adesc) VALUES(‘熊大‘,‘保护森林‘);
INSERT INTO app1(aname,adesc) VALUES(‘光头强‘,‘砍树‘);
INSERT INTO bpp1(bname,bdesc) VALUES(‘小红帽‘,‘傻吊‘);
INSERT INTO bpp1(bname,bdesc) VALUES(‘大灰狼‘,‘牛逼‘);
SELECT aid,adesc FROM app1
UNION
SELECT bname,bdesc FROM bpp1;
以上是关于关于mysql的多表联合模糊查询问题的主要内容,如果未能解决你的问题,请参考以下文章