Consulta sql mostrar datos

Resuelto
okbabb Mensajes publicados 59 Estado Miembro -  
okbabb Mensajes publicados 59 Estado Miembro -
Hola,

7 respuestas

  1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
     
    Hola

    Interésate en las uniones.

    --
    .
    Atentamente,
    Jordane
    0
    1. okbabb Mensajes publicados 59 Estado Miembro
       
      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
      1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > okbabb Mensajes publicados 59 Estado Miembro
         
        Mira, por ejemplo, cómo funciona la unión left join.
        0
      2. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
         
        Tambié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
      3. okbabb Mensajes publicados 59 Estado Miembro > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
         
        Merci, mais désolé, je ne comprends pas le problème, pouvez-vous corriger la requête s'il vous plaît ?
        0
  2. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
     
    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. okbabb Mensajes publicados 59 Estado Miembro
       
      SGBD Mysql y proyecto en PHP,
      He hecho una búsqueda sobre las uniones, pero es más complicado que mi simple trabajo.
      0
      1. okbabb Mensajes publicados 59 Estado Miembro > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
         
        Gracias, he leído todo esto, pero no encuentro mi ejemplo.
        0
      2. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > okbabb Mensajes publicados 59 Estado Miembro
         
        No 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. okbabb Mensajes publicados 59 Estado Miembro
     
    He hecho eso como me dijiste y no funciona
    0
    1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
       
      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. okbabb Mensajes publicados 59 Estado Miembro
     
    Antes de poner los alias, probé este código y me muestra un error de consulta.
    0
    1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
       
      ¿Y cuál es el error exactamente? (porque... darnos esta información ayudaría mucho a su resolución...)
      0
      1. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
         
        ¿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. okbabb Mensajes publicados 59 Estado Miembro
     
    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. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831
       
      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. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
       
      Para 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. okbabb Mensajes publicados 59 Estado Miembro > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
       
      error también
      0
    4. okbabb Mensajes publicados 59 Estado Miembro > jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención  
       
      La 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
    5. jordane45 Mensajes publicados 30427 Fecha de registro   Estado Moderador Última intervención   4 831 > okbabb Mensajes publicados 59 Estado Miembro
       
      Tienes 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. okbabb Mensajes publicados 59 Estado Miembro
     
    ¡Muchas gracias, amigo mío, funciona muy bien! :D
    0