mysql多表联合查询

  • A+
所属分类:Mysql
今天遇到一个问题:

假设现在有3张表
第一张是订单信息基本表(order_info):我要获取他的order_id,order_address,order_username,order_status字段;

第2张表是订单商品表(order_goods):订单商品表和订单信息基本表(order_info)中的order_id的值是一样的;

第3张表是商品表(goods):商品表和订单商品表(order_goods)中的goods_id是相同的, 我要获取他的goods_img字段;

现在我要得到第一张表中的order_id,order_address,order_username,order_status字段和第3张表中的goods_img字段的内容而且写成一条mysql语句请问如何实现?
select a.order_id,a.order_address,a.order_username,a.order_status,c.goods_img from order_info as a inner join order_goods b on a.order_id=b.order_id inner join goods c
on b.goods_id=c.goods_id

MySQL多表联合查询是MySQL数据库的一种查询方式,下面就为您介绍MySQL多表联合查询的语法,供您参考学习之用。
MySQL多表联合查询语法:
SELECT   *    FROM   插入表   LEFT JOIN   主表   ON   t1.lvid=t2.lv_id   select * from mytable,title where 表名1.name=表名2.writer ;   
1、mysql版本大于4.0,使用UNION进行查询,示例如下:
SELECT `id`, `name`, `date`, ‘’ AS `type` FROM table_A WHERE 条件语句……  UNION  SELECT `id`, `name`, `date`, ‘未完成’ AS `type` FROM table_B WHERE 条件语句……  ORDER BY `id` LIMIT num;   
2、mysql版本小于4.0,需要建立临时表,分为三步,示例如下:
第一步:建立临时表tmp_table_name并插入table_A中的相关记录
$sql = “CREATE TEMPORARY TABLE tmp_table_name SELECT `id`, `name`, `date`, ‘完成’ AS `type` FROM table_A WHERE 条件语句……”;  mysql_query($sql) OR die(”query false!”);  
第二步:从table_B中取得相关记录插入临时表tmp_table_name中
mysql_query(”INSERT INTO tmp_table_name SELECT `id`, `name`, `date2` AS `date`, ‘未完成’ AS `type` FROM table_B WHERE 条件语句……”) OR die(”query false!”);  
第三步:从临时表tmp_table_name中取出记录
mysql_query(”SELECT * FROM tmp_table_name ORDER BY id DESC”) or die (”query false!”);
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: