SQL - Consulta SQL Avanzada

 
Vista:
sin imagen de perfil

Consulta SQL Avanzada

Publicado por Pablo (1 intervención) el 19/01/2018 00:58:21
Hola, de antemano muchas gracias por la ayuda, estoy tratando de hacer una consulta SQL avanzada, tengo varias tablas relacionadas por sus respectivos id´s, tengo que traer varios datos de sus diferentes tablas y lo estoy haciendo con left join tipo

1
2
3
4
5
6
7
8
9
10
SELECT unvalor,otrovalor,otrovalormas
FROM tabla AS t
 
LEFT JOIN otra_tabla AS ot ON ot.id = t.id
LEFT JOIN otra_tabla_mas AS otm ON otm.id = ot.id
etc...
etc...
etc...
 
where t.Id='$valor'

Tengo un tipo de búsqueda que me está arrojando los resultados correctamente, pero aquí viene el lío: los filtros de búsqueda son bastantes y me gustaría hacer una búsqueda "inteligente" en la cual no tenga que por cada filtro crear un select con todos sus join.

He intentado hacer algo como

1
2
3
4
5
6
7
8
9
10
SELECT unvalor,otrovalor,otrovalormas
FROM ---nuevatabla--- AS nt
 
LEFT JOIN otra_tabla AS ot ON ot.id = t.id
LEFT JOIN otra_tabla_mas AS otm ON otm.id = ot.id
etc...
etc...
etc...
 
where nt.Id='$valor'

Pero tendría que reordenar todos los join para cada busqueda porque así me genera un error, cómo puedo buscar una solución para esto?? muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL Avanzada

Publicado por Leonardo Josué (1173 intervenciones) el 19/01/2018 16:14:19
Hola Pablo:

No me queda claro qué es lo que pretendes hacer o a qué te refieres con que tienes que crear un SELECT por cada filtro que necesites, Creo que sería conveniente que vayas desde el principio. Veo que este es tu primer Post en el foro así es que bienvenido y van algunos consejos.

1. Siempre que publiques una pregunta en este foro, tienes que indicar con qué BD's estás trabajando, ya que el foro es de SQL general y cada DBMS maneja una sintaxis y funcionalidad distinta. Puedes publicar también tu pregunta en los foros específicos de cada Motor.

2. Postea siempre la estructura de tus tablas y con cada tabla postea algunos datos de ejemplo. No necesitan ser datos reales, simplemente necesitamos esa información para poder hacer pruebas.

3. A partir de esos datos dinos qué es lo que estás esperando como salida, así podremos ayudarte a encontrar la mejor forma de llegar a ese resultado.

4. Si ya tienes código desarrollado, postéalo, no importa si no funciona o incluso si marca error. Si fuera el caso y tu consulta marcara algún error (como lo mencionas al final de tu post) entonces necesitamos saber qué es lo que intentaste ejecutar y cuál es exactamente el código de error que te está arrojando. Lamentablemente en el foro no hay adivinos y así es algo complicado tratar de ayudarte.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar