当前位置:首页 > Mysql教程 > 列表

MySql多表联结查询与多表关联数据同时删除

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-09 13:29:17 浏览: 评论:0 

在数据库中所有数据库都是支持多表联合查询了,下面我来介绍利用left join在mysql中实现多表联合查询,有需要 的朋友可参考.

left join语法,代码如下:

  1. table_references: 
  2.     table_reference [, table_reference] … 
  3.  table_reference: 
  4.     table_factor 
  5.   | join_table 
  6.  table_factor: 
  7.     tbl_name [[AS] alias] 
  8.         [{USE|IGNORE|FORCEINDEX (key_list)] 
  9.   | ( table_references ) 
  10.   | { OJ table_reference LEFT OUTER JOIN table_reference 
  11.         ON conditional_expr } 

例,代码如下:

  1. mysql> CREATE TABLE `product` ( 
  2.   `id` int(10) unsigned NOT NULL auto_increment, 
  3.   `amount` int(10) unsigned default NULL
  4.   PRIMARY KEY  (`id`) 
  5. ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 
  6.  
  7. mysql> CREATE TABLE `product_details` ( 
  8.   `id` int(10) unsigned NOT NULL
  9.   `weight` int(10) unsigned default NULL
  10.   `exist` int(10) unsigned default NULL
  11.   PRIMARY KEY  (`id`) 
  12. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 
  13.  
  14. mysql> INSERT INTO product (id,amount) 
  15.        VALUES (1,100),(2,200),(3,300),(4,400); 
  16. Query OK, 4 rows affected (0.00 sec) 
  17. Records: 4  Duplicates: 0  Warnings: 0 
  18.  
  19. mysql> INSERT INTO product_details (id,weight,exist) 
  20.        VALUES (2,22,0),(4,44,1),(5,55,0),(6,66,1); 
  21. Query OK, 4 rows affected (0.00 sec) 
  22. Records: 4  Duplicates: 0  Warnings: 0 

查询,代码如下:

  1. mysql> SELECT * FROM product LEFT JOIN product_details 
  2.        ON (product.id = product_details.id) 
  3.        AND product.amount=200; --phpfensi.com 
  4. +----+--------+------+--------+-------+ 
  5. | id | amount | id   | weight | exist | 
  6. +----+--------+------+--------+-------+ 
  7. |  1 |    100 | NULL |   NULL |  NULL | 
  8. |  2 |    200 |    2 |     22 |     0 | 
  9. |  3 |    300 | NULL |   NULL |  NULL | 
  10. |  4 |    400 | NULL |   NULL |  NULL | 
  11. +----+--------+------+--------+-------+ 
  12. rows in set (0.01 sec) 

超级简单吧,那么有朋友问我怎么在MySQL中实现多表关联数据同时删除category中的id(栏目编号)字段作为该表的主键(primary key).唯一标识了一个栏目的信息。 

news 中的id字段作为该表的主键(primary key).唯一标识了一个栏目的信息。

category_id(栏目编号)字段与category表的id字段相关联。

SQL删除语句,代码如下:

delete category,news from category left join news on category.id = news.category_id

Tags: MySql多表联结 MySql同时删除

分享到: