![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hoping someone can assist me with a query I have. I have two tables, both of which have at least one field of the same name, type, etc, etc. This field I will call SKEY, for the purposes of this post. SKEY is a CHAR field, 4 chars in length. One of the tables, we'll say Table1, has the complete list of available SKEY's. Table2, on the other hand, contains only some of the available SKEY's. I want to be able to find out which SKEY's are missing from Table2; ie. which SKEY's are in Table1, but not in Table2. I have tried several different queries, but generally end up in a bit of a mess, more often returning tens of thousands of results, when in fact there are only a couple of hundred records in total. My pseudo-code would be something like: SELECT SKEY FROM TABLE1 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY The basic query which I tried is: SELECT TABLE1.SKEY FROM TABLE1 JOIN TABLE2 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY I also tried a few variations, with DISTINCT, etc, etc ... but I never end up with anything close to what I need. |
#3
| |||
| |||
|
|
superman183 wrote: Hoping someone can assist me with a query I have. I have two tables, both of which have at least one field of the same name, type, etc, etc. This field I will call SKEY, for the purposes of this post. SKEY is a CHAR field, 4 chars in length. One of the tables, we'll say Table1, has the complete list of available SKEY's. Table2, on the other hand, contains only some of the available SKEY's. I want to be able to find out which SKEY's are missing from Table2; ie. which SKEY's are in Table1, but not in Table2. I have tried several different queries, but generally end up in a bit of a mess, more often returning tens of thousands of results, when in fact there are only a couple of hundred records in total. My pseudo-code would be something like: SELECT SKEY FROM TABLE1 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY The basic query which I tried is: SELECT TABLE1.SKEY FROM TABLE1 JOIN TABLE2 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY I also tried a few variations, with DISTINCT, etc, etc ... but I never end up with anything close to what I need. If SKEY in TABLE2 cannot be null. SELECT TABLE1.SKEY FROM TABLE1 LEFT JOIN TABLE2 ON TABLE2.SKEY = TABLE1.SKEY WHERE TABLE2,SKEY IS NULL; -- Rik Wasmus [SPAM] Now looking for some smaller projects to work on to fund a bigger one with delayed pay. If interested, mail rik at rwasmus.nl [/SPAM] SELECT TABLE1.SKEY FROM TABLE1 |
#4
| |||
| |||
|
|
On 9 May, 11:54, Rik Wasmus <luiheidsgoe... (AT) hotmail (DOT) com> wrote: superman183 wrote: Hoping someone can assist me with a query I have. I have two tables, both of which have at least one field of the same name, type, etc, etc. This field I will call SKEY, for the purposes of this post. SKEY is a CHAR field, 4 chars in length. One of the tables, we'll say Table1, has the complete list of available SKEY's. Table2, on the other hand, contains only some of the available SKEY's. I want to be able to find out which SKEY's are missing from Table2; ie. which SKEY's are in Table1, but not in Table2. I have tried several different queries, but generally end up in a bit of a mess, more often returning tens of thousands of results, when in fact there are only a couple of hundred records in total. My pseudo-code would be something like: SELECT SKEY FROM TABLE1 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY The basic query which I tried is: SELECT TABLE1.SKEY FROM TABLE1 JOIN TABLE2 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY I also tried a few variations, with DISTINCT, etc, etc ... but I never end up with anything close to what I need. If SKEY in TABLE2 cannot be null. SELECT TABLE1.SKEY FROM TABLE1 LEFT JOIN TABLE2 ON TABLE2.SKEY = TABLE1.SKEY WHERE TABLE2,SKEY IS NULL; -- Rik Wasmus [SPAM] Now looking for some smaller projects to work on to fund a bigger one with delayed pay. If interested, mail rik at rwasmus.nl [/SPAM] SELECT TABLE1.SKEY FROM TABLE1 LEFT JOIN TABLE2 ON TABLE2.SKEY = TABLE1.SKEY WHERE TABLE2.SKEY IS NULL; (replaced comma with full stop) |

#5
| |||
| |||
|
|
Hmmm, What excuse will I use now? National holidays have been over for a few days is wat sent sober & at a normal hour... There's your excuse. Never try to work sober! |
#6
| |||
| |||
|
|
On 9 May, 13:36, Rik Wasmus <luiheidsgoe... (AT) hotmail (DOT) com> wrote: Hmmm, What excuse will I use now? National holidays have been over for a few days is wat sent sober & at a normal hour... There's your excuse. Never try to work sober! |
.
#7
| |||
| |||
|
|
Captain Paralytic wrote: On 9 May, 13:36, Rik Wasmus <luiheidsgoe... (AT) hotmail (DOT) com> wrote: Hmmm, What excuse will I use now? National holidays have been over for a few days is wat sent sober & at a normal hour... There's your excuse. Never try to work sober! I like it how I managed to get a completely bogus sentence:'..is wat sent..' while claiming to be sober .s/is wat/and was/ |
#8
| |||
| |||
|
|
Hi, Hoping someone can assist me with a query I have. I have two tables, both of which have at least one field of the same name, type, etc, etc. This field I will call SKEY, for the purposes of this post. SKEY is a CHAR field, 4 chars in length. One of the tables, we'll say Table1, has the complete list of available SKEY's. Table2, on the other hand, contains only some of the available SKEY's. I want to be able to find out which SKEY's are missing from Table2; ie. which SKEY's are in Table1, but not in Table2. I have tried several different queries, but generally end up in a bit of a mess, more often returning tens of thousands of results, when in fact there are only a couple of hundred records in total. My pseudo-code would be something like: SELECT SKEY FROM TABLE1 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY The basic query which I tried is: SELECT TABLE1.SKEY FROM TABLE1 JOIN TABLE2 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY I also tried a few variations, with DISTINCT, etc, etc ... but I never end up with anything close to what I need.... |
#9
| |||
| |||
|
#10
| |||
| |||
|
|
On Fri, 09 May 2008 04:44:55 -0700, superman183 wrote: Hi, Hoping someone can assist me with a query I have. I have two tables, both of which have at least one field of the same name, type, etc, etc. This field I will call SKEY, for the purposes of this post. SKEY is a CHAR field, 4 chars in length. One of the tables, we'll say Table1, has the complete list of available SKEY's. Table2, on the other hand, contains only some of the available SKEY's. I want to be able to find out which SKEY's are missing from Table2; ie. which SKEY's are in Table1, but not in Table2. I have tried several different queries, but generally end up in a bit of a mess, more often returning tens of thousands of results, when in fact there are only a couple of hundred records in total. My pseudo-code would be something like: SELECT SKEY FROM TABLE1 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY The basic query which I tried is: SELECT TABLE1.SKEY FROM TABLE1 JOIN TABLE2 WHERE TABLE1.SKEY NOT LIKE TABLE2.SKEY I also tried a few variations, with DISTINCT, etc, etc ... but I never end up with anything close to what I need.... Have you tried this code? select skey from table1, table2 where table1.skey not in table2.skey Or, pulling your complete second table as a sub-query (I think this may be needed; it's been a while): select a.skey from table1 a, (select distinct skey from table2) b where a.skey not in b Luck |
![]() |
| Thread Tools | |
| Display Modes | |
| |