繁体   English   中英

如果另一个表中不存在值,如何插入行?

[英]How to insert a row if a value does not exist in another table?

这是我的查询:

"INSERT INTO tbl_pedidos_fornecedors_produtos (pedido_id, prefeitura_id, fornecedor_id, produto_id) VALUES (".$pedido_id.", ".$_SESSION["id"].", ".$fornecedor_ids[$i]["fornecedor_id"].", ".$value->id.")"

我怎样才能做到这一点?

"INSERT INTO tbl_pedidos_fornecedors_produtos (pedido_id, prefeitura_id, fornecedor_id, produto_id) VALUES (".$pedido_id.", ".$_SESSION["id"].", ".$fornecedor_ids[$i]["fornecedor_id"].", ".$value->id.") WHERE ".$value->id." NOT IN (SELECT id FROM tbl_pedidos_produtos)"

您需要PHP来执行以下条件:

<?php
    $exist = $db->getVal('select 1 from tbl_pedidos_produtos where id=:id limit 1',
        [':id' => $value->id]);
    if ($!exsit) {
        $db->query('INSERT INTO tbl_pedidos_fornecedors_produtos ...', [...]);
    }

用适当的db函数替换$ db-> getVal,$ db-> query

试试这个查询:

insert into tbl_pedidos_fornecedors_produtos 
(pedido_id, prefeitura_id, fornecedor_id, produto_id) 
select * from (select '$pedido_id', '$_SESSION["id"]', '$fornecedor_ids[$i]["fornecedor_id"]', '$value->id') as temp 
WHERE $value->id NOT IN (SELECT id FROM tbl_pedidos_produtos)

进行两个查询-SELECT ... tbl_pedidos_produtos以确定是否存在该项目,然后插入tbl_pedidos_fornecedors_produtos(如果没有)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM