PHP SQL: Eşleştirme 1 Tablo Filtreleme olmadan, 2 tablolar arasında veri veri üzerinden gelen

2 Cevap php

I have 2 tables. For simplicities sake 'u' has the following columns
userid
divisionid

'd' has the following:
divisionid
name

Aksi takdirde ben bu sorunu olmazdı, bu tablo oluşturmak vermedi. u.DIVISION can null. d.DIVISION cannot.

Aşağıdaki Koşu uygun veri yaratır, ama aynı zamanda divisionid oluyor null olan her kull filtreler. Hala ne olursa olsun kendi divisionid tüm kimliği en göstermek ve divisionid boş değilse, o zaman bölünme adını görüntülemek için yine de var mı?

"SELECT userid, d.NAME
FROM u,d
WHERE u.divisionid = d.divisionid
ORDER BY userid"

2 Cevap

Bir dış birleşim kullanın:

SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON u.divisionid = d.divisionid
ORDER BY userid

Oracle kullanılması veya birleştirme sözdizimi zımni bir INNER JOIN ima eder. Bir iç kriterlere uymayan ortadan kaldırır kayıtları katılın.

Bir açık JOIN tümcesini kullanarak katılmak katılmak türünü belirlemenizi sağlar.

A LEFT OUTER JOIN bakılmaksızın eşleşen satırların ikinci tabloda varsa, ilk tablodaki tüm satırları tutar.

SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON d.divisionid = u.divisionid
ORDER BY userid