Groups | Blog | Home
all groups > sql server (microsoft) > january 2007 >

sql server (microsoft) : LEFT JOIN Question


Ed Murphy
1/27/2007 11:31:06 AM
[quoted text, click to view]

SELECT * FROM TableA
LEFT JOIN TableB ON TableA.ID_A = TableB.ID_A
David Fabian
1/27/2007 3:58:07 PM
TableA TableB

Name ID_A ID_A MoreData
AAA 1 1 111
BBB 2 1 222
CCC 3

SELECT * FROM TableA
LEFT JOIN TableB ON TableA.ID_A = TableB.ID_A

The above returns:

Name ID_A MoreData
AAA 1 111
AAA 1 222
BBB 2 Null
CCC 3 Null

I am trying to pull TableB records WHERE MoreData != 111, so I used:

SELECT * FROM TableA
LEFT JOIN TableB ON TableA.ID_A = TableB.ID_A
WHERE MoreData != 111

Which returns:

Name ID_A MoreData
AAA 1 222

How can I get SQL Server to return these records?:

Name ID_A MoreData
AAA 1 222
BBB 2 Null
CCC 3 Null

Dave
Steve
1/27/2007 4:13:29 PM

[quoted text, click to view]

SELECT * FROM TableA
LEFT JOIN TableB ON TableA.ID_A = TableB.ID_A
WHERE MoreData <> 111
OR MoreDate IS NOT NULL
Ed Murphy
1/28/2007 12:48:24 PM
[quoted text, click to view]

Last line should be
OR MoreData IS NULL

Here's a third way to do it:

SELECT * FROM TableA
LEFT JOIN TableB ON TableA.ID_A = TableB.ID_A
David Fabian
1/28/2007 1:28:44 PM
[quoted text, click to view]

Thanks Steve & Ed!

AddThis Social Bookmark Button