Cómo unir resultados de 2 tablas basadas en no condición

Tengo 2 mesas, digamosTableA & TableB definido así:

crear tabla TableA (id int, nombre varchar (20), partNumber varchar (30));

con valores como:

insert into TableA values(1,'a1','10');
insert into TableA values(2,'a2','20');
insert into TableA values(3,'a3','30');
insert into TableA values(4,'a4','40');

crear tabla TableB (id int, nombre varchar (20), partNumber varchar (30));

insert into TableB values(5,'b1','10');
insert into TableB values(6,'b2','20');
insert into TableB values(7,'b3','60');
insert into TableB values(8,'b4','70');

Ahora en el resultado quiero unir ambas tablas y obtener todos los registros deTableB y solo esos registros deTableA donde elTableA's partNumber valor de columna que no coincide con ningún valor deTableB's partNumber.

He intentado las consultas a continuación y todas dieron el mismo resultado de 14 registros, lo cual no es correcto.

Consulta 1:

seleccione b.id como Oferta, b.name como Bname, b.partNumber como BPart, a.id como Aid, a.name como Aname, a.partNumber como APart de la TablaB b izquierda, únase a TableA a en a.partNumber! = b .partNumber;

Consulta 2:

seleccione b.id como Bid, b.name como Bname, b.partNumber como BPart, a.id como Aid, a.name como Aname, a.partNumber como APart de TableB b, TableA a donde a.partNumber! = b. número de parte;

Consulta 3:

seleccione b.id como Oferta, b.name como Bname, b.partNumber como BPart, a.id como Aid, a.name como Aname, a.partNumber como APart de la TablaB b izquierda unirse a TableA a en a.partNumber no en ( seleccione a.id como Ayuda de TableB b únete a TableA a en a.partNumber = b.partNumber);

¿Puede alguien ayudarme donde estoy cometiendo un error aquí? cuál es la forma correcta de obtener los resultados.

Espero que la salida sea así:

+------+-------+-------+------+-------+-------+
| Bid  | Bname | BPart | Aid  | Aname | APart |
+------+-------+-------+------+-------+-------+
|    5 | b1    | 10    |    3 | a3    | 30    |
|    5 | b1    | 10    |    4 | a4    | 40    |
|    6 | b2    | 20    |    3 | a3    | 30    |
|    6 | b2    | 20    |    4 | a4    | 40    |
|    7 | b3    | 60    |    3 | a3    | 30    |
|    7 | b3    | 60    |    4 | a4    | 40    |
|    8 | b4    | 70    |    3 | a3    | 30    |
|    8 | b4    | 70    |    4 | a4    | 40    |
+------+-------+-------+------+-------+-------+

Entonces, lo que quiero decir es que no quiero los registros deTableA dóndepartNumber es10, 20 porque los valores están presentes enTableB's partNumber.

Respuestas a la pregunta(1)

Su respuesta a la pregunta