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

Alguien puede verificar el código sql

Estas en el tema de Alguien puede verificar el código sql en el foro de Bases de Datos General en Foros del Web. Necesito hacer una subconsulta para php y necesito verificar el código sql. El código sería el siguiente: $jugadores=mysql_query("select * from Jugadores WHERE ID >'10' and ...
  #1 (permalink)  
Antiguo 18/11/2005, 05:24
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Alguien puede verificar el código sql

Necesito hacer una subconsulta para php y necesito verificar el código sql.

El código sería el siguiente:
$jugadores=mysql_query("select * from Jugadores WHERE ID >'10' and ID NOT IN (Select idjugador FROM Partidos WHERE idpartido = '1')",$link);

¿Alguien puede verificarme este código para ir descartando el problema del código....?


Para ver el tema al completo,
http://www.forosdelweb.com/showthrea...60#post1332660
  #2 (permalink)  
Antiguo 18/11/2005, 07:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
podés hacer subhqueries en MySQL? que versión estás usando (quizás las mas nuevas lo permitan)
  #3 (permalink)  
Antiguo 18/11/2005, 14:46
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 18 años, 9 meses
Puntos: 0
Pues al parecer mi problema es la versión MYSQL que tiene mi servidor, es la MySQL 4.0.26.

Como no sé cuando llevarán a cabo una actualización de esa versión, no podré utilizar las subconsultas. Por lo tanto espero que alguien me pueda ayudar con otro código que sea compatible con mi versión MYSQL para hacer lo siguiente:

De manera gráfica sería algo así:

Tabla1 - Jugadores:
ID | NOMBRE | APELLIDOS
09 | ivan | medina
11 | juan | perez
12 | pedro | ramirez
13 | alberto | suarez

Tabla2 - Partidos:
IDPARTIDO | IDJUGADOR | GOLES
1 | 11 | 1
1 | 12 | 0
2 | 11 | 1

SI HAGO LAS CONSULTAS POR SEPARADO SI ME DEVUELVE LOS REGISTROS
$consulta1=mysql_query("Select idjugador FROM Partidos WHERE idpartido = '1'",$link);
resultado_consulta1= 11, 12

$consulta2=mysql_query("select * from Jugadores WHERE ID > '10'",$link);
resultado_consulta2=11 | juan | perez , 12 | pedro | ramirez, 13 | alberto | suarez
Lo que quiero es que busque los jugadores con ID > 10 que no están en la tabla PARTIDOS cuando indico un valor de partido. En definitiva, la tabla partidos contiene los jugadores que han jugado y con esta consulta, lo que pretendo es que me indique quienes no han jugado ese partido.

$jugadores=mysql_query("select * from Jugadores WHERE ID >'10' and ID NOT IN (Select idjugador FROM Partidos WHERE idpartido = '1')",$link);

Para mostrar los resultados:
while ($row = mysql_fetch_row($jugadores))
{echo "<tr><td>$row[1]</td>
<td>$row[2]</td></tr>";}

Se supone que como resultado me debería de dar:
alberto | suarez
que es el único jugador con id mayor que 10 que no ha jugado el partido 1.

  #4 (permalink)  
Antiguo 18/11/2005, 16:35
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
hay formas de evitar las subqueries.
Código:
select *
from Jugadores
WHERE ID >'10'
and ID NOT IN (Select idjugador FROM Partidos WHERE idpartido = '1')
se puede sustituir por

Código:
select j.*
from Jugadores j
left join Partidos p
  on p.idpartido = '1'
  and p.idjugador = j.id
where j.id >'10'
and p.idpartido is null
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #5 (permalink)  
Antiguo 18/11/2005, 19:16
 
Fecha de Ingreso: julio-2005
Mensajes: 12
Antigüedad: 18 años, 9 meses
Puntos: 0
De acuerdo Infinitamente agradecido

Haron muchas gracias, funcionó a la perfección.

Un saludo
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 08:01.