0

ユーザー情報を含むテーブルとタグ情報を含むテーブルがあります。タグテーブルには、基本的にTagType、UserID、およびタグの値があります。UserIDに基づいて2つのテーブルを結合しました。

次に、TagType=1のタグの値を持つすべてのユーザーのリストを照会します。

SELECT [user].name, [tag].value
FROM user LEFT OUTER JOIN 
  tag ON user.id = tag.userid
WHERE [tag].type = 1

ここまでは順調ですね。これはうまく機能します。

私が今抱えている問題は、タグタイプ= 1のタグを持たないユーザーもクエリに表示したいということです。その場合、NULLを返すだけです。現在、これらのユーザーはクエリによって返されません。

'WHERE [tag] .id = 1'を削除すると表示されますが、ユーザーごとに複数の行(既存のタグタイプごとに1つ)が返されますが、これは望ましくありません。

ある意味で私は取得したい:

Column 1: User Name
Column 2: Tag value of Tag Type 1 if it exists, otherwise NULL

私はすぐそこに立ち往生しています。他のユーザーを取り込む方法はわかりませんが、他のタグタイプは使用しないでください。

4

2 に答える 2

1

WHERE条件を条件の中に入れますJOIN

SELECT [user].name, [tag].value
FROM user LEFT OUTER JOIN 
  tag ON user.id = tag.userid and [tag].type = 1
于 2013-03-07T18:18:14.263 に答える
0

試す:

SELECT [user].name, [tag].value
FROM user LEFT OUTER JOIN 
  tag ON user.id = tag.userid AND [tag].type = 1
于 2013-03-07T18:17:32.500 に答える