none
INNER JOIN RRS feed

  • Pregunta

  • Hola,

    Tengo un problema, quiero realizar una consulta para rellenar un datagridview. Tengo 4 tablas. Una de ellas, historial, tiene 3 campos que hago INNER JOIN con tres tablas diferentes.

    La consulta es la siguiente:

     

    string query = "SELECT sx.NombreEntorno, sy.NombreZona, sz.NombreSonido, s.Hora, s.Intensidad, s.Probabilidad FROM [entornos sx, zona sy, sonidos sz] INNER JOIN historial s ON sx.IdEntorno=s.IdEntorno, sy.IdZona=s.IdZona, sz.IdSonido=s.IdSonido WHERE fecha = ?fecha";
    

    Espero que me podáis ayudar. El error que me da es el siguiente:

    Muchas gracias.

    viernes, 23 de diciembre de 2011 1:42

Respuestas

  • hola

    una duda, has buscado al menos un ejemplo en google de como armar un INNER JOIN ? lo pregunto porque le doy la vuelta y no entiendo como has podido inventar esa sintaxis tan loca, digo la idea de armalo de esta forma lo sacaste de algun ejemplo, o solo lo inventaste

    ademas ese [] en engloba a las tablas, nunca se me hubiera ocurrido inventar algo asi

     

    la sintaxis correcta seria

    SELECT sx.NombreEntorno, sy.NombreZona,
            sz.NombreSonido, s.Hora,
            s.Intensidad, s.Probabilidad
        FROM historial s 
            INNER JOIN entornos sx ON sx.IdEntorno=s.IdEntorno
            INNER JOIN zona sy ON sy.IdZona=s.IdZona
            INNER JOIN sonidos sz ON sz.IdSonido=s.IdSonido 
    WHERE fecha = ?fecha

     

    comparalo con tu ejemplo para ver la diferencia, los join se van uniendo unos a otros para formar las relaciones

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 23 de diciembre de 2011 2:49

Todas las respuestas

  • hola

    una duda, has buscado al menos un ejemplo en google de como armar un INNER JOIN ? lo pregunto porque le doy la vuelta y no entiendo como has podido inventar esa sintaxis tan loca, digo la idea de armalo de esta forma lo sacaste de algun ejemplo, o solo lo inventaste

    ademas ese [] en engloba a las tablas, nunca se me hubiera ocurrido inventar algo asi

     

    la sintaxis correcta seria

    SELECT sx.NombreEntorno, sy.NombreZona,
            sz.NombreSonido, s.Hora,
            s.Intensidad, s.Probabilidad
        FROM historial s 
            INNER JOIN entornos sx ON sx.IdEntorno=s.IdEntorno
            INNER JOIN zona sy ON sy.IdZona=s.IdZona
            INNER JOIN sonidos sz ON sz.IdSonido=s.IdSonido 
    WHERE fecha = ?fecha

     

    comparalo con tu ejemplo para ver la diferencia, los join se van uniendo unos a otros para formar las relaciones

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 23 de diciembre de 2011 2:49
  • El error es bastante claro:  La sintaxis de la sentencia SQL es incorrecta.  De primera entrada en la cláusula From veo corchetes ([]) utilizados inadecuadamente.  Nunca he utilizado SQL parametrizado así que no sé si su sintaxis en la cláusula Where es correcta o no.
    Jose R. MCP
    viernes, 23 de diciembre de 2011 2:50
    Moderador