• 11-05-2021, 13:57:11
    #1
    Selamlar herkese,
    3-4 saat uğraşıdan sonra artık yol katedemiyorum. Konuda yardımcı olabilirseniz memnun olurum.


    mysql db içerisinde 2 table mevcut. table1.qmd_id'deki 3 numaralı id silmesini istiyorum tabi neye göre silecek table2.qmd_id'de yoksa silecek.

    umarım doğru anlatabilmişimdir , zihin yoruldu artık
  • 11-05-2021, 14:36:35
    #2
    DELETE table1 FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id
    WHERE table2.qmd_id is NULL

    yapmak istediğiniz bu ama tam anlamıyla yazmadığınız için herhangi bir ek eşleştirmeniz varsa problem. Ama verdiğiniz koşula göre sorgu bu.

    Eğer product_id tabloda olduğuna göre ona göre de ayrım yapmak istiyorsanız ki sanırım öyle yazmamışsınız bunu kullanmalısınız;


    DELETE table1 FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id and table1.product_id=table2.product_id
    WHERE table2.qmd_id is NULL
  • 11-05-2021, 14:53:10
    #3
    emreakdascomtr adlı üyeden alıntı: mesajı görüntüle
    DELETE table1 FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id
    WHERE table2.qmd_id is NULL

    yapmak istediğiniz bu ama tam anlamıyla yazmadığınız için herhangi bir ek eşleştirmeniz varsa problem. Ama verdiğiniz koşula göre sorgu bu.

    Eğer product_id tabloda olduğuna göre ona göre de ayrım yapmak istiyorsanız ki sanırım öyle yazmamışsınız bunu kullanmalısınız;


    DELETE table1 FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id and table1.product_id=table2.product_id
    WHERE table2.qmd_id is NULL
    ek eşleştirme derken; product id'ye göre her iki tablodaki qmd_id karşılaştırıp olmayanı table1 den silecek. iletmiş olduğun 0 satır döndürdü
  • 11-05-2021, 15:11:26
    #4
    masterdisk adlı üyeden alıntı: mesajı görüntüle
    ek eşleştirme derken; product id'ye göre her iki tablodaki qmd_id karşılaştırıp olmayanı table1 den silecek. iletmiş olduğun 0 satır döndürdü
    verdiğin bilgilere göre ben test yaptım. çalışıyor kod satırı. gmd_id 3 olan satır gidiyor table 1 de yani product_id ler eşleşiyor sonra olmayan varsa gidiyor

    SELECT * FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id and table1.product_id=table2.product_id
    WHERE table2.qmd_id is NULL

    bunu çalıştırıp ss atar mısın?
  • 11-05-2021, 15:39:17
    #5
    emreakdascomtr adlı üyeden alıntı: mesajı görüntüle
    DELETE table1 FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id
    WHERE table2.qmd_id is NULL

    yapmak istediğiniz bu ama tam anlamıyla yazmadığınız için herhangi bir ek eşleştirmeniz varsa problem. Ama verdiğiniz koşula göre sorgu bu.

    Eğer product_id tabloda olduğuna göre ona göre de ayrım yapmak istiyorsanız ki sanırım öyle yazmamışsınız bunu kullanmalısınız;


    DELETE table1 FROM table1
    LEFT JOIN table2 ON table2.qmd_id = table1.qmd_id and table1.product_id=table2.product_id
    WHERE table2.qmd_id is NULL
    alttaki sorguyu görmemişim, üstteki sorgu product_id olmadığı için haliyle 0 döndürüyor.

    alttaki tamamladı, çok teşekkür ederim.
  • 11-05-2021, 15:43:16
    #6
    masterdisk adlı üyeden alıntı: mesajı görüntüle
    alttaki sorguyu görmemişim, üstteki sorgu product_id olmadığı için haliyle 0 döndürüyor.

    alttaki tamamladı, çok teşekkür ederim.
    ne demek iyi günler.