解析Mysql多表查询的实现_Mysql

查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看。
Mysql多表查询:

复制代码 代码如下:

CREATE TABLE IF NOT EXISTS contact(
contact_id int(11) NOT NULL AUTO_INCREMENT,
user_name varchar(255),
nom varchar(255),
prenom varchar(255),
mail varchar(64),
passcode char(64),
PRIMARY KEY(contact_id)
);
CREATE TABLE IF NOT EXISTS droit(
droit_id int( 11 ) NOT NULL AUTO_INCREMENT ,
droit varchar(255),
PRIMARY KEY(droit_id)
);
CREATE TABLE IF NOT EXISTS contactdroit(
contactdroit_id int(11) NOT NULL AUTO_INCREMENT,
contact_id int( 11 ),
droit_id int( 11 ),
PRIMARY KEY( contactdroit_id )
);
Insert into contact(contact_id, user_name) values(1,'user1');
Insert into contact(contact_id, user_name) values(2,'user2');
Insert into contact(contact_id, user_name) values(3,'user3');
Insert into droit(droit_id, droit) values(1,'admin');
Insert into droit(droit_id, droit) values(2,'superuser');
Insert into contactdroit(contact_id, droit_id) values(1, 1);
Insert into contactdroit(contact_id, droit_id) values(2, 1);
Insert into contactdroit(contact_id, droit_id) values(3, 2);
SELECT c.contact_id, d.droit_id, d.droit FROM contact c, contactdroit cd, droit d 
where c.contact_id = cd.contact_id
and cd.droit_id = d.droit_id;

结果:

复制代码 代码如下:

contact_id droit_id droit
1 1 admin
2 1 admin
3 2 superuser

以上就是Mysql多表查询的实现方法。

时间: 2024-08-30 19:00:11

解析Mysql多表查询的实现_Mysql的相关文章

mysql-难到初学者的MySQL多表查询问题

问题描述 难到初学者的MySQL多表查询问题 本人初学java.请各位大牛帮帮忙. 学生表student (stu_id ,stu_name ): 课程表course (c_id,c_name): 成绩表score (stu_id ,c_id,score): 1.在学生表中添加一条数据: 2.查询名字为Tom的学生所选的课程: 3.查询stu_id为3的学生所学课程的成绩 解决方案 insert into student values(id,name); select course.c_name

mysql多表查询连接问题,

问题描述 mysql多表查询连接问题, 题目:查询平均成绩在80分及以上的所有学生的学号及平均成绩并按平均成绩降序排列. SELECT s1.sno FROM student s1,class c1,timetable t,course c2,score s2 WHERE s1.classid = c1.classid AND c1.classid = t.classid AND t.courseid = c2.courseidAND c2.courseid = s2.courseid; 写到这

分析一个MySQL的异常查询的案例_Mysql

问题 用户工单疑问:相同的语句,只是最后的limit行数不同.奇怪的是,limit 10 的性能比limit 100的语句还慢约10倍. 隐藏用户表信息,语句及结果如下 SELECT f1 , SUM(`f2`) `CNT` FROM T WHERE f1 IS NOT NULL AND f3 = '2014-05-12' GROUP BY f1 ORDER BY `CNT` DESC LIMIT 10; 执行时间3 min 3.65 sec SELECT f1 , SUM(`f2`) `CNT

mysql多表查询,在线等

问题描述 mysql多表查询,在线等 四张表A B C D每个表的primary key都是id,D有个C_id对应C的id,C有个B_id对应B的id,B有个A_id对应A的id,要查询A中的name和对应的D中的age,怎么查询呢? 解决方案 select A.name,D.age from A,B,C,D where D.C_id=C.id and C.B_id=B.id and B.A_id=A.id; 你可以使用该语句试试. 解决方案二: A左连接B,B.C一般的查询,D右连接C 试试

mysql 跨表查询、更新、删除示例_Mysql

下面来谈谈跨表插入,更新和删除 首先讨论的是跨表查询: insert into `table_A` select * from `table_B`;注意*代表全部插入. 接着又讨论关于跨表更新 复制代码 代码如下: update `table_A`, `table_B` set `table_A`.`name` = `table_B`.`name` where `table_A`.`id` = `table_B`.`id`;

MySql多表查询问题

问题描述 表A和表B有若干字段 假设我需要表A的字段1,字段2.表B的字段3,字段4其他字段用不着.表A表B有一个相同字段,字段5.需要根据这个字段查询MySql中sql语句该怎么写啊.多表查询忘的差不多了 谢谢 解决方案 select 1,2,3,4 from a,b where a.5 = b.5;

MySQL 多表查询实现分析_MsSql

我们继续使用前面的例子.前面建立的表中包含了员工的一些基本信息,如姓名.性别.出生日期.出生地.我们再创建一个表,该表用于描述员工所发表的文章,内容包括作者姓名.文章标题.发表日期. 1.查看第一个表 mytable 的内容: mysql> select * from mytable; +----------+------+------------+-----------+ | name | sex | birth | birthaddr | +----------+------+-------

Mysql数据库中子查询的使用_Mysql

废话不多说了直接个大家贴mysql数据库总子查询的使用. 代码如下所述 </pre><pre name="code" class="sql">1.子查询是指在另一个查询语句中的SELECT子句. 例句 SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement), SE

MySQL 多表查询实现分析

我们继续使用前面的例子.前面建立的表中包含了员工的一些基本信息,如姓名.性别.出生日期.出生地.我们再创建一个表,该表用于描述员工所发表的文章,内容包括作者姓名.文章标题.发表日期. 1.查看第一个表 mytable 的内容: mysql> select * from mytable; +----------+------+------------+-----------+ | name | sex | birth | birthaddr | +----------+------+-------