2014-05-21 1 views
0

Je pensais que ce serait facile, mais mon code ne fonctionne pas.Supprimer la ligne en fonction d'une autre valeur de colonne de table

Je souhaite supprimer toutes les lignes de la table 1 contenant le nom renvoyé par select * from table2 où member = 'no`` si le nom est' Simon '. c'est-à-dire supprimer tous les non-membres commençant par 'S'.

table1:

name, age 
jane, 29 
simon, 30 
jessica, 20 

table2:

name, member 
jane, yes 
simon, no 
jessica, no 

table1 résultant est

name, age 
jane, 29 
jessica, 30 

Mes tentatives à ce jour sont

delete from table1 
where name = 'Simon' and table2.Member = 'No' 

Cela me donne une erreur

L'identifiant multi-partie "Tools.Htf" ne pouvait pas être lié

Ensuite, j'ai essayé de rejoindre les tables, puis la suppression

DELETE FROM table1 t1 
INNER JOIN Table2 T1 ON O 

Mais cela ne semble pas du tout syntactique.

+0

Essayez-vous de supprimer la personne des deux tables ou simplement table1? –

+0

Non, juste un, table1 – Fearghal

Répondre

4

Peut-être que c'est ce que vous essayez de faire. Essayez-le

DELETE w 
FROM table1 w 
INNER JOIN table2 e 
    ON w.name=e.name 
Where w.name LIKE 's%' AND e.Member='No' 
+0

'w.name LIKE 's%'' probablement, mais la bonne idée :) –

+0

Mais 'Delete w ...' ne supprime-t-il pas la table entière? – Fearghal

+0

@Fearghal, Pourquoi va-t-il supprimer toute la table? Qu'est-ce que pour la condition où utilisé alors? – Rahul

Questions connexes