INSERT INTO item_quotation
(item_id, quotation_id,name_searched,item_name,other_name,selling_price,discounted_price)
SELECT DISTINCT I.item_id," . $quotation_id . ",T.item_name, I.name,I.other_name, INV.selling_price, I.discounted_price
FROM temp_quotations T, item I, inventory INV<br/>
WHERE (I.name LIKE CONCAT( '%', T.item_name, '%')
OR I.other_name LIKE CONCAT( '%', T.item_name, '%'))
AND INV.item_id = I.item_id;
j'ai une table appelée temp_quotations (temp_item_id, item_name) ayant des valeurs
(1, moulin), (2, foret), (3, kit)
j'ai une autre table appelée article (item_id, name, other_name, discounted_price) ayant des valeurs
(1, meuleuse A, 100), (2, kit A, 200)
Lorsque j'exécute ce sql, j'insère des valeurs dans la table item_quotation (item_id, quotation_id, name_searched , item_name, other_name, selling_price, discounted_price) par exemple dans ce cas il va insérer
(1,1, broyeur, broyeur A, 150,100)
(2,1, kit, kit A, 250,200)
Étant donné que l'élément drill n'est pas trouvé dans l'élément de table, il ne sera pas affiché dans la table item_quotations. Je veux écrire une instruction if dans ce sql de sorte que lorsque le nom de l'élément de temp_quotation ne corresponde pas au nom de l'élément, il est introuvable à la place de item_name. C'est ce que je l'ai essayé, mais il n'affiche « introuvable »:IF expression dans SQL
INSERT INTO item_quotation
(item_id, quotation_id,name_searched,item_name,other_name,selling_price,discounted_price)
SELECT DISTINCT I.item_id," . $quotation_id . ",T.item_name,
IF(I.name LIKE CONCAT( '%', T.item_name, '%'),I.name,'not found'),I.other_name, INV.selling_price, I.discounted_price
FROM temp_quotations T, item I, inventory INV
WHERE (I.name LIKE CONCAT( '%', T.item_name, '%')
OR I.other_name LIKE CONCAT( '%', T.item_name, '%'))
AND INV.item_id = I.item_id;
Merci pour le lien. – chupinette