Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

select anidados

Estas en el tema de select anidados en el foro de Bases de Datos General en Foros del Web. Hola, Tengo un problema al anidar 2 select: Código PHP: SELECT letra_c FROM carnet WHERE id_c LIKE  (  SELECT id_c FROM carnet_u WHERE id_u  =  1  )  Veis algun error, porque ...
  #1 (permalink)  
Antiguo 11/04/2005, 04:09
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
select anidados

Hola,

Tengo un problema al anidar 2 select:
Código PHP:
SELECT letra_c
FROM carnet
WHERE id_c
LIKE 

SELECT id_c
FROM carnet_u
WHERE id_u 

Veis algun error, porque yo no, y me dice que tengo un error de sintaxis a partir del parentesis.

Gracias.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 11/04/2005, 08:06
Avatar de yeti  
Fecha de Ingreso: octubre-2004
Ubicación: España, Madrid
Mensajes: 152
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por elangelcaido
Hola,

Tengo un problema al anidar 2 select:
Código PHP:
SELECT letra_c
FROM carnet
WHERE id_c
LIKE 

SELECT id_c
FROM carnet_u
WHERE id_u 

Veis algun error, porque yo no, y me dice que tengo un error de sintaxis a partir del parentesis.

Gracias.
cambia LIKE por =;

SELECT letra_c
FROM carnet
WHERE id_c = ( SELECT id_c
FROM carnet_u
WHERE id_u = 1 )

creo que like solo funciona con % y _
__________________
Cuando creas que no hay solución posible, busca en los foros, siempre en mejor tener a la red mundial de tu parte
  #3 (permalink)  
Antiguo 11/04/2005, 12:21
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Pregunta

Pues nada, sigue dando error de sintaxis en donde el parentesis. Y los nombres de los campos y de las tablas estan correctos, ya lo revise.
Gracias no obstante.

¿Alguna idea mas please?
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #4 (permalink)  
Antiguo 11/04/2005, 12:52
Avatar de sir_joshua  
Fecha de Ingreso: diciembre-2004
Mensajes: 411
Antigüedad: 19 años, 4 meses
Puntos: 0
cambia LIKE por IN

SELECT letra_c
FROM carnet
WHERE id_c IN ( SELECT id_c
FROM carnet_u
WHERE id_u = 1 );

salu2.
  #5 (permalink)  
Antiguo 12/04/2005, 02:00
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Pues sigue dandome el fallo de sintaxis en el mismo sitio, pero a mi me suena lo del IN, voy a seguir probando.

Gracias. ¿Alguna idea o confirmacion mas?
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #6 (permalink)  
Antiguo 12/04/2005, 02:02
Avatar de yeti  
Fecha de Ingreso: octubre-2004
Ubicación: España, Madrid
Mensajes: 152
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por sir_joshua
cambia LIKE por IN

SELECT letra_c
FROM carnet
WHERE id_c IN ( SELECT id_c
FROM carnet_u
WHERE id_u = 1 );

salu2.
Si no te funciona esto ya no se me ocurre nada:

SELECT a.letra_c
FROM a.carnet a, carnet_u b
WHERE a.id_c = b.id_c
and b.id_u = 1);
__________________
Cuando creas que no hay solución posible, busca en los foros, siempre en mejor tener a la red mundial de tu parte
  #7 (permalink)  
Antiguo 12/04/2005, 02:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Código:
SELECT letra_c FROM carnet WHERE id_c='(SELECT id_c FROM carnet_u WHERE id_u=1)'
???
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 12/04/2005, 02:22
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
¿Qué gestor de base de datos?. Ten en cuenta que en versiones anteriores a la 4.1 de mysql no funcionan las subconsultas. De todas formas, con "=" sólo funcionaría si la subconsulta te devuelve un único valor, en otro caso tienen que ser un "in".
Por último, pienso que esa consulta puedes obtenerla haciendo un join:
Código:
SELECT carnet.letra_c
FROM carnet join carnet_u carnet.id_c=carnet_u.id_c
WHERE carnet.id_u = 1
Un saludo.
__________________
Estoy contagiado de Generación-I
  #9 (permalink)  
Antiguo 12/04/2005, 07:45
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Gracias Vice, el problema es la version de mysql, tengo la 3.14 o algo asi.

Un saludo a todos y gracias por la ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.