SORU
2 AĞUSTOS 2009, Pazar


MySQL nerede katılın fıkra

Katılmak istiyorum iki tablo var.

Kategoriler tablosundaki kategorileri ve bu kategoriler category_subscriptions tabloda kullanıcı tarafından abone de istiyorum.

aslında bu şimdiye kadar benim sorgu

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions 
     ON user_category_subscriptions.category_id = categories.category_id

Bu, esas olarak, iç/bir eş yapar sorgunun sonuna maddesi birleştiği yerde bir şeyler eklemek istiyorum ancak gayet iyi çalışıyor.

   SELECT *
    FROM categories
    LEFT JOIN user_category_subscriptions 
         ON user_category_subscriptions.category_id = categories.category_id 
   WHERE user_category_subscriptions.user_id = 1

Nasıl tüm kategoriler tüm kategoriler için abone belirli bir kullanıcı sadece bir sorgu kullanarak alabilirim?

her iki kategori tablosundaki bir anahtar ve user_category_subscriptions category_id. user_category_subscriptions tabloda user_id ikamet eden.

teşekkürler

CEVAP
2 AĞUSTOS 2009, Pazar


join yan koymak gerekir, where:

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions ON 
    user_category_subscriptions.category_id = categories.category_id
    and user_category_subscriptions.user_id =1

, inner join, join bir madde koyarak veya where eşdeğer bir bakın. Ancak, bir outer join, çok farklı.

join bir şartı da, masaya katılmadan olacak satır belirtin. Bu user_id = 1 ilk değerlendirir ve 1 user_id categories tüm satırları katılmak için user_category_subscriptions alt alır demektir. Bu, bu özel kullanıcı abone categories user_category_subscriptions sütunlarda herhangi bir bilgiye sahip olurken, sadece categories tüm satırları verecektir. Tabii ki, tüm diğer categories user_category_subscriptions sütunlar null ile doldurulur.

Diğer taraftan, katılma where bir madde, vesonraazaltır satır. Yani, bu birleşimler yapar ve sonra user_id 1 eşit olmayan tüm satırları ortadan kaldırır. inner join bir almak için verimsiz bir yol kaldı.

Umarım bu yardımcı olur!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bmarian22

    bmarian22

    22 Aralık 2007
  • Bratayley

    Bratayley

    30 Aralık 2010
  • tsweeney79

    tsweeney79

    21 Ocak 2008