How to make this simple query?

  • Thread starter Thread starter ats
  • Start date Start date
A

ats

I'm a little lost here on how to do this seemingly simple query using
SQL. Below is a quick example of what I'm talking about.

tbFirst
=======
ID1 - Auto (key)
A - number


tbSecond
========
ID2 - Auto (key)
ID1 - foreign key
B - number


tbFirst
-------------------
ID1 A
-------------------
1 10
2 12
3 15
4 22


tbSecond
----------------------------------
ID2 ID1 B
----------------------------------
1 1 1
2 1 3
3 1 4
4 1 3
5 1 3
6 1 5
7 1 2
8 2 1
9 2 5
10 2 2
11 3 1
12 3 4


Problems:
1) List ID1's that do not have a B=2
2) List ID1's that have both a B=1 and B=2


Query Results:
1)
----
ID1
----
3
4


2)
 
Nothing simple about these two:

SELECT tbFirst.ID1
FROM tbFirst
WHERE tbFirst.ID1 NOT IN
( SELECT tbSecond.ID1
FROM tbSecond
WHERE tbSecond.B = 2);

SELECT tbFirst.ID1
FROM tbFirst
WHERE tbFirst.ID1 IN
( SELECT tbSecond.ID1
FROM tbSecond
WHERE tbSecond.B =1)
AND tbFirst.ID1 IN
( SELECT tbSecond.ID1
FROM tbSecond
WHERE tbSecond.B =2);
 
Back
Top