【问题标题】:mySQL Insert into table with foreign key ID from anothermySQL 使用另一个外键 ID 插入表中
【发布时间】:2012-03-28 02:33:48
【问题描述】:

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

基本上每个模型都与一个类别相关联。我需要生成一个插入新模型并添加与之关联的 p_category 的 ID 的 INSERT 语句。

我的 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")。 Banana 将是一个新的产品模型,并具有水果 ID 的外键关联。

【问题讨论】:

    标签: php sql insert foreign-keys


    【解决方案1】:

    您可以尝试这种查询(这只是 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 只有 1 个类别,否则它将在 p_model 中插入多条记录

    【讨论】:

    • 非常感谢。它不能完全正常工作,因为它需要 SELECT 'id' 而不是 SELECT '$model_name'。我最终使用(注意我更改了表的名称): INSERT INTO product(model,type_id) SELECT '$p_model_name', id FROM product_types WHERE desc = '$p_type_name'
    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多