MySql 'Seç' yardım

3 Cevap php

Ben bazı tablolar var.

Bu tablolar hepsi 'classified_id' denilen ortak bir sütun var:

   main_table:            cars_table:            
    id (PK) => 4222        id (PK)  => 1021             
  classified_id => 25   classified_id => 25

Bir arama herhangi bir main_table.classified_id cars_table.classified_id (bu durumda) herhangi eşleşirse karşılaştırmak için yapılır Şimdi zaman, ben istiyorum.

the cars_table may return no matches! the classified_id in every table is the only relation. I would never need to compare the cars_table.classified_id to main_table.classified_id, but the other way around is what I need (main_table.classified_id=cars_table.classified_id).

Ben ne tür ... Herhangi bir yardım kullanabilirsiniz Katıl bilmiyorum? Katıl Sol?

Teşekkürler

3 Cevap

Evet, bu bir sol birleşim

Gibi bir şey

SELECT  *
FROM    main_table mt LEFT JOIN
        cars_table ct ON mt.classified_id = ct.classified_id
SELECT * FROM main_table LEFT JOIN cars_table ON main_table.classified_id = cars_table.classified_id

1 - dönecektir? main_table satır kopya ile eşleştiğini nasıl cars_table çok bağlı. Hiçbir maç varsa cars_table tüm değerler NULL olacak

Ben size soruyorum, ancak bazı durumu maç main_table tüm kayıtlar arıyorsanız varsayarak konum oldukça ne emin değilim, ve herhangi bir şekilde aynı classified_id sahip cars_table herhangi kayıtları getirmek istiyorum ana tabloda eşleşen kayıtlar, böyle bir kayıt cars_table içinde olsa bile, sen sola kullanarak gerektiğini şöyle katılın:

SELECT *
FROM main_table AS M
  LEFT JOIN cars_table as C
    ON C.classified_id = M.classified_id
WHERE
  f(M.foo)

M kayıt olduğunda f (M.foo) DOĞRU olarak değerlendirilirse, ama hiçbir karşılık gelen C kaydı, M rekor hala sonuç kümesinde görünür, ancak tüm C alanlar NULL olacak gibi.

Sol dış daha kapsamlı bir açıklama katıldı (bir sol olarak aynı şey katılmak) burada bulabilirsiniz:

http://en.wikipedia.org/wiki/Left_outer_join#Sample_tables

Sen onlar için sol dış vermek örnek anlam katılmak için örnek verilere bakmak gerekir:

http://en.wikipedia.org/wiki/Left_outer_join#Sample_tables