![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hi, Ok, I need help with this. *Here is my data: TABLE A --------------- 2468 3690 1357 TABLE B --------------- 3690 1234 NULL 1357 NULL 8900 Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
#3
| |||
| |||
|
|
Hi, Ok, I need help with this. *Here is my data: TABLE A --------------- 2468 3690 1357 TABLE B --------------- 3690 1234 NULL 1357 NULL 8900 Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
#4
| |||
| |||
|
|
Hi, Ok, I need help with this. *Here is my data: TABLE A --------------- 2468 3690 1357 TABLE B --------------- 3690 1234 NULL 1357 NULL 8900 Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
#5
| |||
| |||
|
|
Hi, Ok, I need help with this. *Here is my data: TABLE A --------------- 2468 3690 1357 TABLE B --------------- 3690 1234 NULL 1357 NULL 8900 Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
#6
| |||||||||||||||
| |||||||||||||||
|
|
Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI NA | | 1 | 1 | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T2 | 1 | 4 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 5 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI SNA| | 1 | 1 | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI | | 1 | 1 | 3 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 3 | 00:00:00.01 | * 2 | HASH JOIN OUTER | | 1 | 1 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
1 | MINUS | | 1 | | 2 | 00:00:00.01 | 2 | SORT UNIQUE | | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | SORT UNIQUE | | 1 | 4 | 4 | 00:00:00.01 | 5 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
#7
| |||||||||||||||
| |||||||||||||||
|
|
Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI NA | | 1 | 1 | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T2 | 1 | 4 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 5 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI SNA| | 1 | 1 | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI | | 1 | 1 | 3 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 3 | 00:00:00.01 | * 2 | HASH JOIN OUTER | | 1 | 1 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
1 | MINUS | | 1 | | 2 | 00:00:00.01 | 2 | SORT UNIQUE | | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | SORT UNIQUE | | 1 | 4 | 4 | 00:00:00.01 | 5 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
#8
| |||||||||||||||
| |||||||||||||||
|
|
Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI NA | | 1 | 1 | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T2 | 1 | 4 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 5 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI SNA| | 1 | 1 | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI | | 1 | 1 | 3 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 3 | 00:00:00.01 | * 2 | HASH JOIN OUTER | | 1 | 1 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
1 | MINUS | | 1 | | 2 | 00:00:00.01 | 2 | SORT UNIQUE | | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | SORT UNIQUE | | 1 | 4 | 4 | 00:00:00.01 | 5 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
#9
| |||||||||||||||
| |||||||||||||||
|
|
Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI NA | | 1 | 1 | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T2 | 1 | 4 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 0 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 5 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI SNA| | 1 | 1 | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 2 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 5 | 1 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | HASH JOIN ANTI | | 1 | 1 | 3 | 00:00:00.01 | 2 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | * 3 | TABLE ACCESS FULL| T2 | 1 | 3 | 3 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
* 1 | FILTER | | 1 | | 3 | 00:00:00.01 | * 2 | HASH JOIN OUTER | | 1 | 1 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
|
Id | Operation | Name | Starts | E-Rows | A-Rows | A- Time | |
|
1 | MINUS | | 1 | | 2 | 00:00:00.01 | 2 | SORT UNIQUE | | 1 | 5 | 5 | 00:00:00.01 | 3 | TABLE ACCESS FULL| T1 | 1 | 5 | 5 | 00:00:00.01 | 4 | SORT UNIQUE | | 1 | 4 | 4 | 00:00:00.01 | 5 | TABLE ACCESS FULL| T2 | 1 | 4 | 4 | 00:00:00.01 | |
#10
| |||
| |||
|
|
Hi, Ok, I need help with this. *Here is my data: TABLE A --------------- 2468 3690 1357 TABLE B --------------- 3690 1234 NULL 1357 NULL 8900 Ok, I want to get a list of items in TABLE A which do not exist in TABLE B. *Simple right? SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b); Guess what? *It does not work. *I get nothing. *If I use IN, it returns things, but if I use NOT IN I get nothing However, if I do this: SELECT id FROM table_a WHERE id NOT IN (SELECT id FROM table_b WHERE id IS NOT NULL); Well, it works fine. *Why do I need a NOT NULL on my subquery??? Thanks, John. |
![]() |
| Thread Tools | |
| Display Modes | |
| |