🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2530

Re: alias en select sql

#2530
From: Rickoj
Date: Tue, 06 Dec 2005 03:11
119 lines
4912 bytes
A Jos� Miguel Santib��ez se le ocurrio tipear
> En el cap�tulo anterior (news:dn20hv$dcb$1@news.nivel5.cl), "Rick_oj"
> <rick_oj@[sin-esto]tutopia.com> dijo:
>
> (...)
>
>>>> tengo algo asi
>>>>
>>>> SELECT * FROM usuario, facturacion WHERE facturacion.id <> NULL
>>>> ORDER BY usuario.Nombre
>>>>
>>>> me gustaria poder hacer algo asi
>>>>
>>>> SELECT * as resultado FROM usuario, facturacion WHERE
>>>> facturacion.id <> NULL ORDER BY usuario.Nombre if resultado=NULL
>>>> resultado='No hay datos'
>>>>
>>>> los resultados se van a un campo html select, entonces con lo que
>>>> tengo cuando no hay resultados el select esta vacio, con lo segundo
>>>> mostraria no hay datos cuando no existan resultados
>>>>
>>>> no estoy seguro si se puede usar if y asignacion de variables del
>>>> tipo alias en sql
>>>>
>>>> se agradece
>>>>
>>>
>>> Est�s un tanto mareado con el SQL... eso no funciona as�...
>>
>> a�ejo y no me acordaba por eso pregunte
>
> ta bien, no es pa' ponerse sensible :-)

no es pa tando mas me retaba un profe :p

>
>>> el alias, siempre es a un campo espec�fico (o una tabla espec�fica),
>>> por ejemplo:
>>> select count(*) as cantidad from tabla;
>>> select campo1, count(*) as cantidad from tabla having cantidad > 0
>>> group by campo1;
>>>
>>> y su objetivo es simplificar la lectura o el acceso a los datos
>>> (primer caso) y/o adem�s permitir aplicar restricciones (segundo
>>> caso).
>>>
>>> Pero para lo que pides, necesitas combinar SQL y c�digo...
>>>
>>> SELECT * FROM usuario, facturacion WHERE facturacion.id
>>> <> NULL ORDER BY usuario.Nombre;
>>>
>>> luego determinar si hay datos (la mayor�a de las APIs te permiten
>>> consultar la cantidad de datos) y si no hay, entonces colocar el
>>> mensaje y si hay, recorrer la lista... Te pondr�a alg�n ejemplo,
>>> pero no indicaste lenguaje...
>>
>> algo habia pensado, pero no estab seguro si sql me lo saba de una
>>
>> mysql y php
>
> lo supuse, pero adem�s andaba corto de tiempo ;-)
>
> $sql = 'SELECT *
>          FROM usuario, facturacion
>         WHERE facturacion.id is not NULL
>         ORDER BY usuario.Nombre';
> $res = mysql_query($sql) or die(" $sql -> " . mysql_error());
> echo "<table>";
> if (mysql_num_rows($res) == 0) {
>  echo "<tr><th>No hay datos...</th></tr>";
> } else {
>  while ($row = mysql_fetch_row($res)) {
>    echo "<tr>";
>    for ($i = 0; $i < count($row); $i++) {
>      echo "<td>" . $row[$i] . "</td>";
>    }
>    echo "</tr>";
>  }
> }
> echo "</table>";
>

voy a darle una vuelta a esto, parece ser lo que necesito

>>> (PD: en el SQL falta la relaci�n entre facturaci�n y usuario)
>>
>> usuario tiene los nombres y un identificador, facturacion la fecha en
>> que les facturan la cuenta el select muestra a todos los usuarios
>> disponibles que aun no se les ingresa la fecha de facturacion
>>
>
> Ok, pero debe haber alg�n campo que relacione ambas tablas,
> probablemente en facturaci�n est� el id del usuario y eso hay que
> agregarlo al query... ("AND usuario.id = facturacion.user_id" o algo
> similar).

usuario.id = facturacion.id pero estoy buscando las facturacion.id osea los 
identificadores de facturacion de los usuarios que no se han llenado por eso 
igual a NULL

>
> O peor, esto cachando que debes necesitar algo como:
>
> SELECT usuario.*
>  FROM usuario left join facturacion
>    on usuario.id = facturacion.id
> WHERE facturacion.id is null
> ORDER BY usuario.Nombre
>
> para que responda a lo que necesitas...

join? mmm si hace el join buscara los datos iguales yo necesito los datos 
del usuario para poder completar los campos en facturacion, no se si me 
explico bien (debe ser la hora y lo cansado)
gracias

-- 
"Nadie puede quitarme el derecho
a ser un perfecto imbecil" 
Technical Details
Message-ID: <dn2vgq$q84$1@news.nivel5.cl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!not-for-mail
References: <dn1p7g$agt$1@news.nivel5.cl> <Xns9723998EBBDCFjmsnews@200.27.221.71> <dn20hv$dcb$1@news.nivel5.cl> <Xns9723F06C738D7jmsnews@200.27.221.71>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,9e1bad619270f126
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!not-for-mail
From: "Rick_oj" <rick_oj@[sin-esto]tutopia.com>
Newsgroups: chile.comp.programacion
Subject: Re: alias en select sql
Date: Tue, 6 Dec 2005 00:11:19 -0300
Organization: Varios
Lines: 121
Message-ID: <dn2vgq$q84$1@news.nivel5.cl>
References: <dn1p7g$agt$1@news.nivel5.cl> <Xns9723998EBBDCFjmsnews@200.27.221.71> <dn20hv$dcb$1@news.nivel5.cl> <Xns9723F06C738D7jmsnews@200.27.221.71>
NNTP-Posting-Host: pc-115-201-120-200.cm.vtr.net
X-Trace: news.nivel5.cl 1133838682 26884 200.120.201.115 (6 Dec 2005 03:11:22 GMT)
X-Complaints-To: news@news.nivel5.cl
NNTP-Posting-Date: Tue, 6 Dec 2005 03:11:22 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original