Home Foros Foro dudas Foro de PHP/MySql Consulta en MYSQL Respuesta a: Consulta en MYSQL

Respuesta a: Consulta en MYSQL

Home Foros Foro dudas Foro de PHP/MySql Consulta en MYSQL Respuesta a: Consulta en MYSQL

#8808

Miguel Aguirre
Participante

Hola Martin,

Veamos si puedo echarte una mano. En primer lugar decirte que MySQL si soporta la cláusula limit, puedes comprobarlo lanzando SELECT * FROM TablaTelefonos LIMIT 1, por ejemplo. No llego a entender bien en que caso ves viable el uso de limit en esto que nos planteas pero si te sirve para otra cosa, que sepas que si existe.

Si he entendido bien, lo que tratas de hacer es una tabla con un usuario y sus correspondientes numeros de teléfono

Te voy a plantear una solución algo mas sencilla de cara a MySQL

MySQL

Yo crearía tres tablas, la de usuarios está bien como está y otras dos con los teléfonos, una llamada tel_particular y otra tel_laboral, ambas con campos id_usuario y numero (ningun campo mas, ya que el id autoincremental en una tabla dependiente resulta innecesario). id_usuario lo pondría como campo único en ambas tablas ya que un usuario puede tener telefono particular, telefono laboral, ambos o ninguno, pero no dos laborales ni dos particulares (si quieres dar esta posibilidad te recomiendo que uses PHP para hacerlo algo mas sencillo, con sentencias SQL se va a complicar mucho en ese caso y quizá necesites procedimientos y funciones bastante complejas y, como supongo que esto lo haces para aprender, no querrás abrumarte con un problema enorme que no va a darte de comer, pero ya tu decides ;D).

USUARIOS:                                 TEL_PARTICULAR:                                       TEL_LABORAL:

id      usuario                                 id_usuario      numero                                   id_usuario      numero

—————-                               —————————-                                 —————————-

1      Usuario_1                              1                        123456                                      1                        987654

2      Usuario_1                              2                        555555

 

Query:

— variable en la que le decimos el id de usuario que queremos encontrar, si se trata de una consulta preparada

— en PHP, @var deberia ser sustituida por ? o el parámetro y la clausula set no seria necesaria

set @var = [sustituir por el id del usuario que hay que buscar];

SELECT u.usuario as Nombre,
IFNULL((select numero from tel_particular where user_id = @var),’none’) as Particular,  — “none” si no existe
IFNULL((select numero from TEL_LABORAL where user_id = @var),’none’) as Laboral  — “none” si no existe
from USUARIOS u
where u.id = @var;

Si a @var le asignamos 1:

Nombre          Particular      Laboral

———-          ————     ———-

Usuario_1        123456          987654

 

Si a @var le asignamos 2:

Nombre          Particular      Laboral

———-          ————     ———-

Usuario_1        555555          none

 

 

Espero haberte ayudado con esto, si necesitas mas ayuda ya nos dices!!

 

Un saludo!