2012-03-28 42 views
0

外鍵ID表我有兩個表: p_model:(自動識別增量),(名稱),(p_category_id) p_category:(ID),(名稱)MySQL的INSERT INTO從另一個

基本上每個模型都與一個類別相關聯。我需要生成一個插入新模型的INSERT語句,並添加與其關聯的p_category的id。

我的PHP函數傳遞兩個值:

function Perform_Insert_Model($model_name, $category_name) 
{ 
$statement = "INSERT INTO p_model(`name`,`p_category_id`) VALUES ('$model_name','??????')"; 

//Where the "??????" is I need a statement that searches for $category_name (string) in the p_category table and returns the id. 

.... 
} 

一個例子調用該函數將是$數據庫 - > Perform_Insert_Model( 「香蕉」, 「水果」)。香蕉將成爲新的產品模型,並擁有水果ID的外鍵關聯。

回答

1

你可以試試這個類型的查詢(這只是1查詢):

INSERT INTO p_model(`name`,`p_category_id`) SELECT '$model_name', `p_category_id` 
    FROM p_category WHERE `category_name`='$category_name'; 

注:這是假定只有1類由給定CATEGORY_NAME或將在p_model插入多條記錄

+0

很好,謝謝。它並不完全是因爲它需要SELECT'id'而不是SELECT'$ model_name'。 (注意我改變了表的名字):INSERT INTO product('model','type_id')SELECT'$ p_model_name','id' FROM'product_types' WHERE'desc' ='$ p_type_name' – Vidarious 2012-03-28 03:01:35