Visualizzazione dei risultati da 1 a 7 su 7

Discussione: SQL con Join annidate

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39

    SQL con Join annidiate

    Ciao,

    ho scritto questa istruzione SQL:

    "SELECT
    ShowsPictures.ID,
    ShowsPictures.Show,
    ShowsPictures.LinkToWork,
    Works.*,
    Artists.ID,
    Artists.Surname,
    Artists.Name
    FROM
    ShowsPictures
    LEFT JOIN
    (Works
    INNER JOIN Artists ON Works.Artist=Artists.ID) ON ShowsPictures.LinkToWork=Works.ID WHERE ShowsPictures.Show='"&intShowID&"' AND ShowsPictures.PicOnShowsList=True"
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Ok, ho scoperto che non funzionano le tabulazioni all'interno del post!
    Rifaccio da capo!

    Ciao,

    ho scritto questa istruzione SQL:

    "SELECT
    ShowsPictures.ID,
    ShowsPictures.Show,
    ShowsPictures.LinkToWork,
    Works.*,
    Artists.ID,
    Artists.Surname,
    Artists.Name
    FROM
    ShowsPictures
    INNER JOIN
    (Works
    INNER JOIN
    Artists
    ON
    Works.Artist=Artists.ID)
    ON
    ShowsPictures.LinkToWork=Works.ID
    WHERE ShowsPictures.Show='"&intShowID&"'
    AND ShowsPictures.PicOnShowsList=True"

    Funziona alla perfezione.
    La cosa strana che mi succede è che se sostituisco l' INNER JOIN in grassetto (il primo) con un LEFT JOIN (cosa di cui ho bisogno), non funziona più!

    Strano vero?!!

    E il messaggio che ricevo è:

    Microsoft JET Database Engine error '80040e14'
    Join expression not supported.

    Se qualcuno ne sa qualcosa...

    Grazie.
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Ho scoperto... a chi potesse essere utile questa è la causa:

    è possibile annidiare una qualsiasi JOIN in una INNER JOIN ma non in una OUTER JOIN, LEFT o RIGHT che sia.
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  4. #4
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    Originariamente inviato da Tom.Xmas
    Ok, ho scoperto che non funzionano le tabulazioni all'interno del post!
    ...
    usa il bottone # che trovi nella form quando scrivi una risposta al forum
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Grazie per la dritta.

    Tornando a SQL pensavo di aver fatto un passo avanti ma invece...

    Ho rigirato l'istruzioni per inserire la OUTER JOIN dentro la INNER JOIN (e non viceversa), ma la cosa strana ora è che funziona con INNER JOIN e RIGHT JOIN, ma non con LEFT JOIN (che ovviamente è quello che mi serve!)

    codice:
    strSQL=
    "SELECT
       ShowsPictures.ID,
       ShowsPictures.Show,
       ShowsPictures.LinkToWork,
       Works.*,
       Artists.ID,
       Artists.Surname,
       Artists.Name
    FROM
       Artists
       INNER JOIN
          (ShowsPictures
          RIGHT JOIN 
          Works
          ON
          ShowsPictures.LinkToWork=Works.ID)
    ON
       Artists.ID=Works.Artist 
    WHERE
       ShowsPictures.Show='"&intShowID&"'
    AND
       ShowsPictures.PicOnShowsList=True"
    L'errore è lo stesso:
    Microsoft JET Database Engine error '80040e14'
    Join expression not supported.

    Potrebbe essere un qualcosa legato alla chiave primaria della tabella?
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    39
    Access... scusa, dimenticato di specificare.
    ...sembra ancora di sentirlo dire al mercante di liquori "Tu che lo vendi, cosa ti compri di migliore?!". [F.De Andrè]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.