Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: 5378453 en 27 de Octubre 2015, 01:09
-
Tengo este codigo y quisiera saber como funciona:
$sql = "SELECT
lib.ID_libro AS lib_id,
lib.libro AS lib_titulo,
lib.descripcion AS lib_descrip,
lib.fec_mod AS lib_fecha_mod,
cat.ID_categoria AS cat_id,
cat.categoria AS cat_nom,
cat_col.color AS cat_color,
lib_edic.ID_libro_edicion AS edic_id,
lib_edic.anio_edicion AS edic_anio,
lib_edic.ultima_ed AS edic_ult,
edit.editorial AS edit_nom,
edit.ID_editorial AS edit_id,
if(lib_fav.activo=1, 'favorito', '' )AS favorito
FROM libro AS lib
LEFT JOIN categoria AS cat ON cat.ID_categoria = lib.FK_ID_categoria
LEFT JOIN categoria_color AS cat_col ON cat_col.FK_ID_categoria = lib.FK_ID_categoria
LEFT JOIN libro_edicion AS lib_edic ON lib_edic.FK_ID_libro = lib.ID_libro
LEFT JOIN editorial AS edit ON edit.ID_editorial = lib.FK_ID_editorial
LEFT JOIN libro_favorito AS lib_fav ON lib_fav.FK_ID_libro = lib.ID_libro AND lib_fav.FK_ID_usuario=$idUsuario
WHERE ID_libro = $libro_id
ORDER BY lib_edic.anio_edicion DESC;";
lo unico que se de sql es que Select * from libro es para llamar todos los valores de libro, mi duda es que significa el:
lib.ID_libro AS lib_id <-- que significa el lib antes del punto y para que se usa el AS, por que se que ID_libro es para acceder a los valores de la tabla que tenga ID_libro
-
Hola,
lib.ID_libro AS lib_id se lee así: "De la tabla lib selecciona el campo ID_libro, y en el contexto de esta expresión sql dicho campo de dicha tabla es renombrado como sinónimo como lib_id"
El AS se usa para crear sinónimos dentro de la expresión sql.
Por ejemplo, supón esta expresión:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
Esto da un resultado con tres columnas: OrderID, CustomerName y OrderDate
Se puede reescribir así:
SELECT Orders.OrderID AS ordenes, Customers.CustomerName AS clientes, Orders.OrderDate AS fecha
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
Esto da un resultado con tres columnas: ordenes, clientes, fecha (es el mismo resultado pero las columnas están renombradas)
El renombramiento se usa por varios motivos.
Saludos
-
Muchas graciaspor tu ayuda, ya me quedó más claro.