[MySQL] where clause pour DELETE
arnaudligth
-
BNJL -
BNJL -
Bonjour,
Alors en fait j'ai 2 tables :
- refs qui a comme champs id_ref et d'autres champs quelconque
- stocks qui a comme champs id_stock, id_ref et d'autres champs quelconque
ce que je voudrais faire c'est effacer de la table refs les enregistrements dont les id_refs ne sont pas présents dans la table stocks, pour illustrer :
table refs
id_ref
1
2
3
4
5
table stocks
id_stock | id_ref
1 | 2
2 | 3
3 | 4
4 | 5
dans cet exemple il faudrait que l'enregistrement avec l'id__ref=1 soit effacer de la table refs car il n'es pas présent dans la table stock.
PS
Si c'est pas possible avec DELETE une requete avec SELECT qui me permet de lister les id_refs qui sont présents dans la table refs et pas dans la table stocks.
Si je peux avoir les explications avec ça serai encore mieux, histoire de pas rester dans l'ignorance...
Merci d'avance.
Alors en fait j'ai 2 tables :
- refs qui a comme champs id_ref et d'autres champs quelconque
- stocks qui a comme champs id_stock, id_ref et d'autres champs quelconque
ce que je voudrais faire c'est effacer de la table refs les enregistrements dont les id_refs ne sont pas présents dans la table stocks, pour illustrer :
table refs
id_ref
1
2
3
4
5
table stocks
id_stock | id_ref
1 | 2
2 | 3
3 | 4
4 | 5
dans cet exemple il faudrait que l'enregistrement avec l'id__ref=1 soit effacer de la table refs car il n'es pas présent dans la table stock.
PS
Si c'est pas possible avec DELETE une requete avec SELECT qui me permet de lister les id_refs qui sont présents dans la table refs et pas dans la table stocks.
Si je peux avoir les explications avec ça serai encore mieux, histoire de pas rester dans l'ignorance...
Merci d'avance.
Configuration: Windows XP Firefox 3.0.6
2 réponses
-
Bonjour,
Alors avec un SELECT :
$query('SELECT id_ref FROM refs WHERE id_ref NOT IN (SELECT id_ref FROM stocks)');
Avec un DELETE :
$query=('DELETE * FROM refs WHERE id_ref NOT IN (SELECT id_ref FROM sotcks)');-
Merci pour ta réponse Psyk mais je doit louper un truc parce que pour la requete SELECT dans PHPMyAdmin j'ai droit à un
MySQL a répondu:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_ref FROM stocks ) LIMIT 0, 30' at line 1 -
-
-
-
-
-
Alors utilise un LEFT JOIN
SELECT id_refs FROM stocks LEFT JOIN refs ON stocks.id_refs = refs.id_refs WHERE refs.id_refs is NULL