Consulta sql mostrar datos

Resuelto
Hola,

7 respuestas

  1. Moderador
    Hola

    Interésate en las uniones.

    --
    .
    Atentamente,
    Jordane
    0
    1. Esta consulta no funciona:

      SELECT * FROM personas, estructuras WHERE lugar_trabajo = id_estructura AND asignacion = id_estructura

      ¿Cómo puedo resolver el problema, por favor?
      0
    2. Moderador
      @okbabbMira, por ejemplo, cómo funciona la unión left join.
      0
    3. Moderador
      @jordane45También tendrás que interesarte por los alias... porque debes hacer la unión dos veces en tu tabla estructuras (una para cada relación con tu tabla personas).
      0
    4. @jordane45Merci, mais désolé, je ne comprends pas le problème, pouvez-vous corriger la requête s'il vous plaît ?
      0
  2. Moderador
    Ya... deberías indicarnos qué SGBD estás utilizando...
    ¿Mysql? ¿Access? ¿Oracle? ¿SqlServer? ¿PostgreSql? ¿Otro??

    Luego, te dije que te informaras sobre las uniones de tipo LEFT JOIN y sobre los ALIAS... ¿lo hiciste??
    0
    1. SGBD Mysql y proyecto en PHP,
      He hecho una búsqueda sobre las uniones, pero es más complicado que mi simple trabajo.
      0
    2. @jordane45Gracias, he leído todo esto, pero no encuentro mi ejemplo.
      0
    3. Moderador
      @okbabbNo encontrarás un ejemplo que reprenda exactamente tu necesidad... depende de ti entender cómo funciona y aplicarlo...

      Empieza con una primera unión entre tus dos tablas, mira lo que da...
      luego, añade una segunda unión entre tus dos tablas... y listo... el trabajo está hecho...
      En resumen
       SELECT * FROM table1 T1 LEFT JOIN table2 T2 ON T2.xx = T1.zz LEFT JOIN table2 T3 on T3.ww = T1.yy 
      0
  3. He hecho eso como me dijiste y no funciona
    0
    1. Moderador
      1 - No se deben publicar imágenes... sino el código directamente en el foro utilizando las etiquetas de código.
      2 - Una consulta SQL se debe probar ANTES directamente en la bdd (utilizando phpmyadmin, por ejemplo).
      3 - Será necesario poner ALIAS también en la parte "SELECT" de tu consulta para poder identificar los campos (ya que tienes varias veces los mismos...).

      NB: Explicaciones sobre el uso de las etiquetas de código deben leerse completamente antes de volver:
      https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      .
      0
  4. Antes de poner los alias, probé este código y me muestra un error de consulta.
    0
    1. Moderador
      ¿Y cuál es el error exactamente? (porque... darnos esta información ayudaría mucho a su resolución...)
      0
    2. Moderador
      @jordane45¿No sería una cuestión de ID ambigua en el order by?
      Sería necesario prefijarlo con el alias de la tabla que corresponde a este campo... T1.id por ejemplo.
      0
  5. no, he quitado el order by y el problema persiste
    el error es:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\Serveur\xampp\htdocs\projet\tableau.php on line 103

    y no sé cómo poner los alias para que las salidas muestren los nombres de las estructuras (lieu_travail y affectation) de las columnas seleccionadas.
    0
    1. Moderador
      Ah, pero hablas de un mensaje de error de PHP... eso no nos importa.
      Ya que... porque tu pregunta se refiere a la construcción de una consulta SQL, que está publicada en el foro de Bases de datos... y además... te dije que probaras tus consultas DIRECTAMENTE en tu base de datos antes de querer usarlas en el código.

      Sin olvidar que tu código PHP está obsoleto... pero eso te lo diré más tarde cuando finalmente hagas la consulta para la que nos pediste ayuda...
      0
    2. Moderador
      @jordane45Para los alias... evidentemente, todavía no te has tomado el tiempo de leer los enlaces que te di.
      Todo está explicado allí...
      Por ejemplo
       SELECT T1.id as ID1, T2.id as ID2 ... 
      0
    3. @jordane45La cosa es muy simple, pero no sé cómo hacerlo, aquí hay otro ejemplo,

      una tabla "usuarios" que contiene 4 columnas: id, nombre, país_origen, país_residencia

      id nombre país_origen país_residencia
      1 michel 1 2
      2 celine 3 4

      y otra tabla "país" que contiene 2 columnas: id_pais, nombre_pais

      id_pais nombre_pais
      1 francia
      2 bélgica
      3 españa
      4 suiza

      quiero una tabla final como esta: (output)

      nombre país_origen país_residencia
      michel francia bélgica
      celine españa suiza

      ¿cuál es la consulta SQL? y gracias de antemano.
      0
    4. Moderador
      @okbabbTienes un error porque no has utilizado el alias de la tabla en la parte SELECT ...
       T1.lieu.... 

      Y no
       personas.lieu.... 


      A menos que no hayas escrito bien el nombre de la columna? (pero, sin conocer la estructura exacta de tu base de datos, es difícil para mí adivinarlo a distancia)
      0
  6. ¡Muchas gracias, amigo mío, funciona muy bien! :D
    0