Mysql多表查询的实现 mysql多表查询语句大全
创始人
2024-07-18 02:41:16
0

Mysql多表查询是大家经常会遇到的问题,下面就为您详细介绍Mysql多表查询的实现方法,希望可以让您对Mysql多表查询有更多的了解。

多表查询:

  1. CREATE TABLE IF NOT EXISTS contact(  
  2. contact_id int(11) NOT NULL AUTO_INCREMENT,  
  3. user_name varchar(255),  
  4. nom varchar(255),  
  5. prenom varchar(255),  
  6. mail varchar(64),  
  7. passcode char(64),  
  8. PRIMARY KEY(contact_id)  
  9. );  
  10. CREATE TABLE IF NOT EXISTS droit(  
  11. droit_id int( 11 ) NOT NULL AUTO_INCREMENT ,  
  12. droit varchar(255),  
  13. PRIMARY KEY(droit_id)  
  14. );  
  15. CREATE TABLE IF NOT EXISTS contactdroit(  
  16. contactdroit_id int(11) NOT NULL AUTO_INCREMENT,  
  17. contact_id int( 11 ),  
  18. droit_id int( 11 ),  
  19. PRIMARY KEY( contactdroit_id )  
  20. );  
  21. Insert into contact(contact_id, user_name) values(1,'user1');  
  22. Insert into contact(contact_id, user_name) values(2,'user2');  
  23. Insert into contact(contact_id, user_name) values(3,'user3');  
  24. Insert into droit(droit_id, droit) values(1,'admin');  
  25. Insert into droit(droit_id, droit) values(2,'superuser');  
  26. Insert into contactdroit(contact_id, droit_id) values(1, 1);  
  27. Insert into contactdroit(contact_id, droit_id) values(2, 1);  
  28. Insert into contactdroit(contact_id, droit_id) values(3, 2);  
  29.  
  30. SELECT c.contact_id, d.droit_id, d.droit FROM contact c, contactdroit cd, droit d   
  31. where c.contact_id = cd.contact_id  
  32. and cd.droit_id = d.droit_id;  
  33.  

结果:

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

多表联查例子:

两个方法都可以,inner join on 更好点。表结构没贴出来,但比较好懂了。
简单方法:

  1. select c.nom, e.nom   
  2. from consultant c, affaire a, besoin b, salarie sa, site s, entreprise e  
  3. where c.consultant_id=a.consultant_id and a.besoin_id=b.besoin_id and b.salarie_id=sa.salarie_id and ssa.site_id=s.site_id and s.entreprise_id=e.entreprise_id  
  4.  

inner join方法:

  1. select c.nom, e.nom  
  2. from consultant c  
  3. inner join affaire a on c.consultant_id=a.consultant_id  
  4. inner join besoin b on a.besoin_id=b.besoin_id  
  5. inner join salarie sa on b.salarie_id=sa.salarie_id  
  6. inner join site s on ssa.site_id=s.site_id  
  7. inner join entreprise e on s.entreprise_id=e.entreprise_id  
  8.  

 

 

【编辑推荐】

MySQL分区表对于函数的限制

拆表用的MySQL存储过程

深入探讨MySQL锁机制

详解MySQL数据表类型

单表多字段MySQL模糊查询的实现


 

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...