requête SQL ne select pas la valeur

J'ai une simple requête d'insertion SQL:

INSERT INTO db_name (COL1, COL2, COL3, ...) VALUES ('value1', (SELECT name FROM another_table WHERE id = :php_value), value3 .....) 

Mais parfois la valeur COL2 est NULL car SELECT ne sélectionne rien (nom existant) est-il possible de protéger des loggings vides? Ou j'ai besoin de changer de script et de garder select avant d'insert (insert extérieur)? Cela n'arrive pas régulièrement mais ~ 1/3000 loggings

Je pense que le problème est avec la condition id = :php_value la requête ne returnne pas parfois des données. Vous pouvez éviter d'insert une ligne dans la table avec un name vide de cette façon:

 INSERT INTO db_name (COL1, COL2, COL3, ...) SELECT 'value1', name, 'value3',... FROM another_table WHERE id = :php_value 

En supposant que vous utilisez PHP. Vous pouvez simplement initialiser la variable name avec une valeur par défaut, puis exécuter la requête select séparément.

 $name = ""; // or whatever you want the default value to be $query = "SELECT `name` FROM `another_table` WHERE `id` = '" + php_value + "'"; 

Vous pouvez maintenant get le nom de la requête et le stocker dans la variable $ name (vous pouvez d'abord vérifier si la valeur returnnée par la database n'est pas nulle).

Vous pouvez ensuite créer la requête suivante et l'exécuter en intégrant la variable $ name.