PHP Mysql Delete İle INNER JOIN
-
$sql="DELETE FROM filmler INNER JOIN film_tur ON '$id'=film_tur.film_id WHERE filmler.id='$id' and film_tur.film_id='$id'";
yapmaya çalıştığım şey wpdeki kategori mantığını kullandığım sitede filmi sildiğimde film_tur tablosunda eşleştirilmiş girdileri de silmek ama beceremedim. bakabilecek var mı?
-
nurulmac11 bunu yazdı
$sql="DELETE FROM filmler INNER JOIN film_tur ON '$id'=film_tur.film_id WHERE filmler.id='$id' and film_tur.film_id='$id'";
yapmaya çalıştığım şey wpdeki kategori mantığını kullandığım sitede filmi sildiğimde film_tur tablosunda eşleştirilmiş girdileri de silmek ama beceremedim. bakabilecek var mı?
Yukarıda işaretlediğim yerde sıkıntı var hocam,
Join'in ON kısmında iki tablo alanının birbirine eşitlenmesi gerekiyor (tablo1.alan = tablo2.alan). Sen değişkeni tablo alanına eşitlemişsin.
$sql="DELETE FROM filmler INNER JOIN film_tur ON filmler.id = film_tur.film_id WHERE filmler.id=$id ;
Yukarıdaki şekilde denermisin hocam.
-
aercys bunu yazdınurulmac11 bunu yazdı
$sql="DELETE FROM filmler INNER JOIN film_tur ON '$id'=film_tur.film_id WHERE filmler.id='$id' and film_tur.film_id='$id'";
yapmaya çalıştığım şey wpdeki kategori mantığını kullandığım sitede filmi sildiğimde film_tur tablosunda eşleştirilmiş girdileri de silmek ama beceremedim. bakabilecek var mı?
Yukarıda işaretlediğim yerde sıkıntı var hocam,
Join'in ON kısmında iki tablo alanının birbirine eşitlenmesi gerekiyor (tablo1.alan = tablo2.alan). Sen değişkeni tablo alanına eşitlemişsin.
$sql="DELETE FROM filmler INNER JOIN film_tur ON filmler.id = film_tur.film_id WHERE filmler.id=$id ;
Yukarıdaki şekilde denermisin hocam.
yok hocam
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 'INNER JOIN film_tur ON filmler.id=film_tur.film_id WHERE filmler.id='20' and fil' at line 1
hata veriyor
-
nurulmac11 bunu yazdıaercys bunu yazdınurulmac11 bunu yazdı
$sql="DELETE FROM filmler INNER JOIN film_tur ON '$id'=film_tur.film_id WHERE filmler.id='$id' and film_tur.film_id='$id'";
yapmaya çalıştığım şey wpdeki kategori mantığını kullandığım sitede filmi sildiğimde film_tur tablosunda eşleştirilmiş girdileri de silmek ama beceremedim. bakabilecek var mı?
Yukarıda işaretlediğim yerde sıkıntı var hocam,
Join'in ON kısmında iki tablo alanının birbirine eşitlenmesi gerekiyor (tablo1.alan = tablo2.alan). Sen değişkeni tablo alanına eşitlemişsin.
$sql="DELETE FROM filmler INNER JOIN film_tur ON filmler.id = film_tur.film_id WHERE filmler.id=$id ;
Yukarıdaki şekilde denermisin hocam.
yok hocam
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 'INNER JOIN film_tur ON filmler.id=film_tur.film_id WHERE filmler.id='20' and fil' at line 1
hata veriyor
DELETE film_tur.* FROM filmler INNER JOIN film_tur ON filmler.id=film_tur.film_id WHERE filmler.id=$id
Yukarıdaki şekilde olacak hocam. DELETE'ten sonra silinmesini istediğin tablodan alanları seçmen gerekiyor
-
Şöyle bir link buldum: http://stackoverflow.com/questions/8598791/sql-delete-with-inner-join
Buna göre sorgu:
$sql="DELETE FROM filmler.* INNER JOIN film_tur ON filmler.id = film_tur.film_id WHERE filmler.id=$id ;
böyle oluyor galiba. aercys'in de dediği gibi datayı değil de tablonun alanlarını joinlemelisin.
-
nerdeyse oldu sayılır
$sql="DELETE film_tur.*,filmler.* FROM filmler INNER JOIN film_tur ON filmler.id=film_tur.film_id WHERE filmler.id='$id'";
kod eğer tür eklenmemişse çalışmıyor. yani film silinmiyor. tür kayıtlıysa film de türler de sorunsuz siliniyor. neden anlayamadım
-
Hocam inner join iki tablonun kesişimini verir. Yani filme ait tür yoksa, sorgu sonucunda film'i döndürmez.
Bunun için LEFT JOIN kullanman gerekiyor. Yani bu şu demek; filme ait verilen id ye göre tüm kayıtları çek, eğer filme ait tür varsa tür'ü de çek.
Bu şekilde olması lazım
-
aercys bunu yazdı
Hocam inner join iki tablonun kesişimini verir. Yani filme ait tür yoksa, sorgu sonucunda film'i döndürmez.
Bunun için LEFT JOIN kullanman gerekiyor. Yani bu şu demek; filme ait verilen id ye göre tüm kayıtları çek, eğer filme ait tür varsa tür'ü de çek.
Bu şekilde olması lazım
$sql="DELETE film_tur.*,filmler.* FROM filmler LEFT JOIN film_tur ON filmler.id=film_tur.film_id WHERE filmler.id='$id'";
eyv hocam bu haliyle sorunsuz oldu.