2011-01-20 13 views
5

Burada karşılaşılan birden fazla soru olduğunu biliyorum, ancak mysql için nispeten yeni ve bu işi alt görevler kullanarak yapamıyorum. anahtar kelime kullanımı, artı mysql satır docs tam bir gizem bulabilirsiniz. Çalışmak için mysql silme sorgusuna katılamıyorum

benim temel olarak bir SELECT sorgusu kullanarak SİL sorgu inşa etmeye çalışıyoruz başladı ve silmek istediği tüm satırları başardı:

select * 
from writings_tags_link 
join writing_tags on writing_tags.id = writings_tags_link.tag_id 
where writing_tags.tag = 'tag one' 

ve sonra sadece tüm bu kadar SİL seçeneğini değiştirilir:

ben hem hata iletisinden ve bir silme sorguda tablo katılmak için 'AÇIK' kullanamaz benzeri yayınlardan toplamak
delete 
from writings_tags_link 
join writing_tags on writing_tags.id = writings_tags_link.tag_id 
where writing_tags.tag = 'tag one' 

, sen KULLANARAK veya alt sorgu kullanmak zorunda. İlk, döndürür sorgu gerçekten garip bir hata KULLANMA ile inşa sorgusu:

DELETE 
FROM writings_tags_link 
USING writing_tags_link INNER JOIN writing_tags 
WHERE writing_tags.id = writings_tags_link.tag_id 
AND writing_tags.tag ='tag one' 

hatası:

#1109 - Unknown table 'writings_tags_link' in MULTI DELETE 

Bu tablo, halen mevcut açıkçası, benim orijinal seçme sorgusu istenen sonuç vermedi. Herhangi bir yardım/açıklama çok takdir edilecektir!

Lütfen aklınızda bulundurun, ben sadece bağlantı tablosundaki verileri silmeye çalışıyorum.

cevap

8

Bilgileriniz kullanırken JOIN SİL sözdiziminde USING anahtar kelime kullanımını gerektiren hakkında yanlış - documentation provides examples in the multi-delete section:

DELETE wtl 
    FROM WRITINGS_TAGS_LINK wtl 
    JOIN WRITING_TAGS wt ON wt.id = wtl.tag_id 
WHERE wt.tag = 'tag one' 
+1

gördüğüm oh, silmek ne eklemek vermedi! Dediğim gibi, öğreniyorum :) Teşekkürler, OMG Ponies! – JoeM05

+0

bu da benim nooberyimde bana yardımcı oldu :) –

İlgili konular