Pregunta SQL

Estado
Cerrado para nuevas respuestas.

JulianD

Lanero Reconocido
13 Abr 2001
9,860
Tengo una pregunta, haber si puedo obtener unos daticos de dos tablas, que me gustaría hacerlo en una sola query... Suena sencillo, pero la verdad no he podido hacerlo... haber si alguien me colabora:

Tengo dos tablas:

Tabla 1:

Código:
+----------+-------------------+
| threadid | title             |
+----------+-------------------+
|        4 | Pentium 4 3.06GHz |
|        8 | Gts               |
+----------+-------------------+

Y la tabla 2:
Código:
+----------+
| threadid |
+----------+
|        8 |
|        0 |
+----------+


Lo que quiero hacer es una query que me devuelva el threadid y el título de la Tabla 1, pero con la condicion de que este threadid NO puede estar en el threadid de la tabla 2.... La verdad le he intentado y ni idea...

Entonces en definidas cuentas, en este ejemplo particular, necesitaría que la query me devolviera...

Código:
+----------+-------------------+
| threadid | title             |
+----------+-------------------+
|        4 | Pentium 4 3.06GHz |
+----------+-------------------+

...puesto que el threadid de este elemento no se encuentra en la Tabla 2.... Si alguien sabe, help me please :)
 
Uffff, violenta con una sola Query...
Aunque podrías intentar anidando selects pero incumpliendo condiciones.
O sea, armas una columna temporal descartando los threadid repetidos, luego con esa temporal la comparas con la columna threadid de la tabla uno, entonces solo haces un select a las filas que tengan threadid iguales.
 
Anidando selects?

Osea select from x where (Select from y...)...) ????

No puedo, porque lo necesito para mysql y en ese lenguaje todavia no hay multiples selects...

Si no hay solución, se tendrá que hacer con 2 queries... :(
 
select t.threadid, t.title from tabla t , tabla2 d where t.threadid != d.threadid;

asi?
 
No funcionó....Mostró como 3 veces el contenido de tabla 1, incluyendo los valores que estoy tratando de quitar, los de tabla 2....
 
No conozco sobre selects anidados pero supongo que tecnicamente son dos selects en una sola query... Da lo mismo hacer primero un select y luego otro... Bueno, algo parecido fue lo que me tocó hacer.. jeje
 
Se le llaman sub select's

SELECT * FROM table1 WHERE NOT EXISTS (SELECT id FROM table2 where table1.id=table2.id);

Mira a ver si esto te da ideas :)
 
si, me da la idea con que solucioné el problema... Primero un select y luego otro... Asi lo hice.
 
debe haber una forma mas corta, pero tengo pereza mental.. :D
 
Pero entonces a la final que? Mysql no soporta el query anidado que mostro oddg? porque me parecio violenta esa, no se me hubiera ocurrido jamas, ojala cuando vea bases no me salga algo asi, porque yo si pongo esa base a dar vueltas.
 
hasta donde yo se mysql si deja hacer selects anidados, pero no estoy seguro voy a ver y luego cuento :)
 
no tendremos soporte para subselects en mysql hasta que no salga la version 3.24.xx o la 4.0 estable
 
Estas en lo cierto Sh4dow... MySQL no soporta select dentro de otro select.....
 
Estado
Cerrado para nuevas respuestas.

Los últimos temas