PHP SQL:2つのテーブル間で対応するデータを一致させ、1番目のテーブルでデータを除外せずに
-
03-10-2019 - |
質問
2つのテーブルがあります。単純化のために「u」には次の列があります
ユーザーID
divisionid
「D」には次のようなものがあります。
divisionid
名前
私はこのテーブルを作成しませんでした、さもなければこの問題はありません。 U.Division できる nullになります。 D.ディビジョン できません.
次のことを実行すると、適切なデータが作成されますが、除算に対してnullがあるすべてのユーザーIDを除外します。とにかく、師団に関係なく、すべてのユーザーIDを表示し、DivisionIDがnullでない場合は、部門の名前を表示しますか?
「userid、d.nameを選択します
uから、d
ここで、u.divisionid = d.divisionid
useridによる注文 "
解決
外側の結合を使用してください:
SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON u.divisionid = d.divisionid
ORDER BY userid
他のヒント
Oracleまたは暗黙の結合構文を使用することは、 INNER JOIN
. 。内側の結合は、基準を満たさないレコードを排除します。
を使用して明示的な結合 JOIN
句を使用すると、結合のタイプを指定できます。
a LEFT OUTER JOIN
2番目のテーブルに一致する行があるかどうかに関係なく、すべての行を最初のテーブルに保持します。
SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON d.divisionid = u.divisionid
ORDER BY userid
所属していません StackOverflow