mySQL从另一个表中插入带有外键ID的表

时间:2012-03-28 02:33:48

标签: php sql insert foreign-keys

我有两张桌子: p_model:(id auto inc),(name),(p_category_id) AND p_category:(id),(name)

基本上每个模型都与一个类别相关联。我需要生成一个插入新模型的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.

....
}

对该函数的示例调用将是$ database-> Perform_Insert_Model(“Banana”,“Fruit”)。香蕉将成为一种新的产品模型,并拥有水果ID的外键关联。

1 个答案:

答案 0 :(得分:1)

您可以尝试这种查询(这只是一个查询):

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

注意:这假设给定category_name只有一个类别,或者它将在p_model中插入多个记录