What about left joining to TableB twice:

SELECT DISTINCT A.*, B.FieldID, B.FieldValue
FROM TableA A LEFT OUTER JOIN TableB B
ON A.KeyedField = B.KeyedField, 
   TableA A LEFT OUTER JOIN TableB C
   ON A.KeyedField = C.KeyedField
WHERE 1 = 1 AND
(
( B.CustomFieldID = 23 AND B.FieldValue = 'something' )
And
( C.CustomFieldID = 24 AND C.FieldValue = 'something else' )
)

Does this work?
Steve

-------------------------------------
Steven Monaghan
Oracle DBA / Cold Fusion Developer
MSC Industrial Direct Co., Inc.
http://www.mscdirect.com
-------------------------------------
-----Original Message-----
From: Scott Weikert [mailto:[EMAIL PROTECTED]]
Sent: Monday, January 27, 2003 2:40 PM
To: SQL
Subject: Re: Odd select issue


Went round and round with my co-worker on this. I can't simply use "OR". I 
need to check that BOTH are true. That the value tied to ID #23 is what is 
specified, AND that the value tied to ID #24 is what is specified. In my 
testing environment, for the record I'm trying to get out of TableA, I've 
got *five* records in TableB - #23 and #24 are just the two I'm checking 
against in this case.

I think it's a matter of restructuring the query in some fashion, but I 
haven't hit on the solution yet.

At 01:30 PM 1/27/2003 -0600, you wrote:
>You had  AND, you needed or.  It was trying to find where CustomFieldID eq
>both 23 and 24 in same record.
>
>SELECT DISTINCT A.*, B.FieldID, B.FieldValue
>FROM TableA A LEFT OUTER JOIN TableB B
>ON A.KeyedField = B.KeyedField
>WHERE 1 = 1 AND
>(
>( B.CustomFieldID = 23 AND B.FieldValue = 'something' )
>
>OR
>
>( B.CustomFieldID = 24 AND B.FieldValue = 'something else' )
>)
>
>
>At 11:18 AM 1/27/2003 -0700, you wrote:
> >Ok, next issue. :)
> >
> >I have two tables that I'm trying to do a combined select on, based on
> >criteria drawn from both tables. Second table has zero-to-X records for
> >each record out of the first table, and I'm doing a left outer join on'em
-
> >that works fine.
> >
> >If I look for the presence of one bit of data in the second table, it
works
> >great. If I look for the presence of TWO bits of data (i.e. two matching
> >records) out of the second table, it doesn't - it appears that the two
> >records 'cancel each other out', as I'm looking for an ID and a value in
a
> >text field - i.e. the first record's ID doesn't match the second ID I'm
> >looking for, and the second record's ID doesn't match the first ID I'm
> >looking for, so even though the ID/values match, they both get excluded.
> >
> >Here's a trimmed down query:
> >
> >SELECT DISTINCT A.*, B.FieldID, B.FieldValue
> >FROM TableA A LEFT OUTER JOIN TableB B
> >ON A.KeyedField = B.KeyedField
> >WHERE 1 = 1 AND
> >(
> >( B.CustomFieldID = 23 AND B.FieldValue = 'something' )
> >And
> >( B.CustomFieldID = 24 AND B.FieldValue = 'something else' )
> >)
> >
> >Thanks in advance,
> >--Scott
> >
> >
>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=6
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=6
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

                        

Reply via email to