程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql查詢中供應商本身的任意產品的使用

Mysql查詢中供應商本身的任意產品的使用

編輯:MySQL綜合教程

以下的文章主要講述的是Mysql查詢中所有的供應商與其本身的任意一個產品的使用的方案描述,本文主要講述的是Group by的具體使用方案,因一網友提出的需求,其主要內偶然那個如下所示:

有供應商表a,商品表b 以下簡稱a,b,a與b是一對多的關系(一條供應商對應多條商品) ,現在想一對一的提取 ,即所有的供應商都提取出來,但是每條供應商只提取一條商品記錄對應起來就行了。

我提供的測試代碼如下:

  1. view plaincopy to clipboardprint?  
  2. CREATE TABLE `t_supplier` (   
  3. `id` int(11) NOT NULL,   
  4. `name` varchar(50) NOT NULL,   
  5. PRIMARY KEY (`id`)   
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;   
  7. CREATE TABLE `t_goods` (   
  8. `Id` int(11) NOT NULL AUTO_INCREMENT,   
  9. `Supplier_Id` int(11) NOT NULL,   
  10. `Name` varchar(50) DEFAULT NULL,   
  11. PRIMARY KEY (`Id`),   
  12. KEY `Supplier_Id` (`Supplier_Id`),   
  13. CONSTRAINT `t_goods_ibfk_1` FOREIGN KEY (`Supplier_Id`) 
    REFERENCES `t_supplier` (`id`)   
  14. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;   
  15. insert into t_Supplier values (1,'天津供應商'),(2,'北京供應商');   
  16. insert into t_Goods values(1,1,'天津產品1'),
    (2,1,'天津產品2'),(3,2,'北京產品1'),(4,2,'北京產品2');  

Mysql查詢語句,注意group 的用法

  1. select * from t_supplier s   
  2. left join t_goods g on g.supplier_id=s.id   
  3. group by s.id  

Mysql查詢結果 所有的供應商,和其一個產品

  1. CREATE TABLE `t_supplier` (  
  2. `id` int(11) NOT NULL,  
  3. `name` varchar(50) NOT NULL,  
  4. PRIMARY KEY (`id`)  
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  
  6. CREATE TABLE `t_goods` (  
  7. `Id` int(11) NOT NULL AUTO_INCREMENT,  
  8. `Supplier_Id` int(11) NOT NULL,  
  9. `Name` varchar(50) DEFAULT NULL,  
  10. PRIMARY KEY (`Id`),  
  11. KEY `Supplier_Id` (`Supplier_Id`),  
  12. CONSTRAINT `t_goods_ibfk_1` FOREIGN KEY (`Supplier_Id`) REFERENCES `t_supplier` (`id`)  
  13. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;  
  14. insert into t_Supplier values (1,'天津供應商'),(2,'北京供應商');  
  15. insert into t_Goods values(1,1,'天津產品1'),(2,1,'天津產品2'),(3,2,'北京產品1'),(4,2,'北京產品2'); 

查詢語句,注意group 的用法

  1. select * from t_supplier s  
  2. left join t_goods g on g.supplier_id=s.id  
  3. group by s.id 

Mysql查詢結果,所有的供應商,和其一個產品在Mysql裡,非Group 和聚合的字段是可以出現select裡面的,系統會自動選擇一個數據。在別的數據庫裡是不允許這麼使用的 。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved