2012-01-16 5 views
0

テーブルというテーブルがあり、テーブルGROUPS(ユーザーは1つまたは0以外のGROUPSに関係します)への外部キーを持っています。テーブルUSERSには、ISDELETEDTまたはFの文字列)も含まれています。この結合をTSQLクエリで行うにはどうすればいいですか?

は、私は、クエリを取得するために必要なすべてのGROUPSとすべてGROUP内のすべてのユーザーが削除されたか、どのユーザーが、私はそのGROUPにNULLを返すようにクエリを必要と定義されていない場合は、削除されませんUSERS

私は次のクエリを試してみました:

SELECT  GROUPS.*, USERS.* 
FROM  GROUPS INNER JOIN 
        USERS ON GROUPS.ID = USERS.GROUPID 
WHERE USERS.ISDELETED = 'F' 

しかし、このクエリは空でグループを返していません。 SQLと私は世界で最高の友人ではありません、いくつかの助けは素晴らしい、ありがとう。あなただけの左外側を行う必要があるはずです

+2

用は、ジェフ・アトウッドからの視覚的な説明を参照してください参加します.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html –

答えて

2

あなたはすべてのグループをしたい場合は、関係なく、ユーザーテーブルの試合の、あなたは左の外側を使用する必要がありますが参加します。http:// WWW

SELECT  GROUPS.*, USERS.* 
FROM  GROUPS 
      LEFT OUTER JOIN 
      USERS 
      ON GROUPS.ID = USERS.GROUPID AND USERS.ISDELETED = 'F' 
1

が参加 -

SELECT  GROUPS.*, USERS.* 
FROM  GROUPS LEFT OUTER JOIN 
        USERS ON GROUPS.ID = USERS.GROUPID 
WHERE USERS.ISDELETED = 'F' 

Here's私が参加し、SQLの違いの自分を思い出させるために使用したい参照。

+0

どこで動作しないのかは、結合のONの内側にある必要があります。とにかくありがとう。 –

0

INNER JOINの代わりにLEFT OUTER JOIN演算子を使用する必要があります。

関連する問題