2016-09-22 49 views
0

我有一個mysql查詢需要通過搜索供應商名稱來返回供應商表中的供應商ID,但它一直返回多個值。mysql返回多個行

CREATE DEFINER=`root`@`%` PROCEDURE `sp_insert_sup_order`(
supname varchar(50), 
dat date, 
total decimal(10,2) 
) 
BEGIN 
insert into Supplier_Order 
(
Supplier_ID, 
SupDate, 
Total, 
Sup_Name 
) 
values 
(
(select Supplier_ID from Supplier Where Supplier_ID.SupName = supname), 
dat, 
total, 
supname 
); 

那就是查詢。任何幫助,這將不勝感激謝謝

+0

更改此行:'(從供應商中選擇Supplier_ID,其中Supplier_ID.SupName = supname)':(從供應商中選擇供應商名稱Supplier.SupName = supname)' –

回答

0
(select Supplier_ID from Supplier Where Supplier_ID.SupName = supname) 

這應該是這樣的:

(select Supplier_ID from Supplier Where Supplier.SupName = supname), 

你們爲什麼存儲供應商名稱和順序編號?不應該這樣做,您必須更改供應商的名稱,您將不得不更新所有訂單。只有供應商ID應該存儲在訂單表中!

+0

該名稱存儲在那裏,因爲我們可以刪除供應商如果我們在哪裏刪除一個供應商,那麼我們將無法再次找到訂單 –

+0

非常感謝你的工作:)我整天坐在那個問題 –

+0

@prahielbicyram解決這個問題的一種方法就是將供應商標記爲刪除。所以你不必展示他們,仍然可以得到名字...... –