2015-12-16 92 views
0

這是我的查詢:如何插入一行,如果一個值不存在於另一個表中?

"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)" 
+0

在嘗試插入之前檢查值是否存在.... – Kisaragi

回答

1

您需要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-> GETVAL,$ DB->查詢你的正確分貝功能

0

讓兩個查詢 - 選擇.. 。tbl_pedidos_produtos弄清楚項目是否存在,如果不

1

嘗試此查詢然後插入tbl_pedidos_fornecedors_produtos:

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) 
相關問題