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

Una explicacion de este select

Estas en el tema de Una explicacion de este select en el foro de Mysql en Foros del Web. Hola a todos: Alguien podria comentar este select. Código PHP: $query  =  'SELECT p.id AS did, p.*, g.nombre as generonombre, CASE WHEN CHAR_LENGTH(p.alias) THEN CONCAT_WS(\':\', p.id, p.alias) ELSE p.id END as slug, CASE WHEN CHAR_LENGTH(g.alias) THEN CONCAT_WS(\':\', g.id, g.alias) ELSE g.id END as generoslug FROM peliculas_peliculas AS p LEFT JOIN peliculas_generos AS g ON g.id = p.idgenero'  Un saludo...
  #1 (permalink)  
Antiguo 19/08/2012, 04:17
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Una explicacion de este select

Hola a todos:

Alguien podria comentar este select.

Código PHP:
$query 'SELECT p.id AS did, p.*, g.nombre as generonombre, CASE WHEN CHAR_LENGTH(p.alias) THEN CONCAT_WS(\':\', p.id, p.alias) ELSE p.id END as slug,
CASE WHEN CHAR_LENGTH(g.alias) THEN CONCAT_WS(\':\', g.id, g.alias) ELSE g.id END as generoslug FROM peliculas_peliculas AS p LEFT JOIN peliculas_generos AS g ON g.id = p.idgenero' 
Un saludo
  #2 (permalink)  
Antiguo 20/08/2012, 09:42
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Una explicacion de este select

Hola ManelGomez:

Qué es lo que quieres saber??? o cual es la duda??? comentar acerca de si está bien o está mal es un poco difícil, por lo pronto te hago algunas observaciones:

Código:
SELECT p.id AS did, p.*, g.nombre AS generonombre,
Si estás poniendo p.* indicas que vas a traer TODOS LOS CAMPOS DE LA TABLA P, entonces no tienes necesidad de listar el campo p.id, tal como lo tienes se duplicaría este campo. La palabra reservada AS podrías quitarla sin ningún problema.

Código:
CASE WHEN CHAR_LENGTH(p.alias) THEN 
  CONCAT_WS(\':\', p.id, p.alias) 
ELSE p.id END
Este CASE-WHEN en realidad no sé para qué lo hace, la función CHAR_LENGH regresa una longitud, no un booleano (TRUE, FALSE) pero lo que hace es determinar si muestra solo el ID o la concatenación del ID y el alias.

El resto no tiene nada que explicarse, es simplemente un LEFT JOIN entre las tablas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 23/08/2012, 05:09
Avatar de ManelGomez  
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Una explicacion de este select

Gracias Compañero:

Veras esa sentencia forma parte del código del CMS Joomla, en el cual estoy descifrando las interioridades.

Gracias y un saludo.

Etiquetas: join, select
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 23:33.