Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177

    unire union e join insieme

    salve ragazzi buongiorno

    ho un piccolo problema di sintassi per quanto riguarda l'union overro unire due tabelle insieme e il join
    in pratica vorrei unire due tabelle utenti tab1 e tab2
    per poi andare a fare un join con un altra tabella ma questo non mi riesce affatto anche perche non riesco a collegare le due query ve le posto

    Codice PHP:
    $q="SELECT mail, id FROM tab UNION SELECT mail, id FROM tab1 as tab2";


    $query "SELECT postobarcatemp.*, tab.id as idutente FROM postobarcatemp LEFT JOIN tab ON postobarcatemp.mail = tab.mail"
    la prima e l'unione e il suo ALIAS dovrebbe essere messo nel join ma non mi riesce mi da un errore sintattico come fare?? grazie mille

    come database utilizzo il mysql

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Sono due query diverse. L'alias della prima non sarà valido per la seconda.

    Potresti provare qualcosa stile

    codice:
    SELECT * FROM (YOUR UNION SELECT) LEFT JOIN .....

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    e in your union che dovrei metterci secondo te?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    allora?

  5. #5
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da gian21
    e in your union che dovrei metterci secondo te?
    Ovviamente ci dovresti mettere la tua union

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    si ok
    faccio la mia uniono quindi
    SELECT * FROM (YOUR UNION SELECT) LEFT JOIN ..... ma come faccio poi a fare left join tab1.mail = allamiaunion.mail ?

  7. #7
    Ciao,

    permettimi una regressione.


    Nel primo post che hai messo dici che vuoi fare l'union di 2 tabelle per poi metterla in join con una terza tabella.

    Non so cosa vuoi farci con la tabella in union la butto li non potresti fare una query con le 3 tabelle in join?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    177
    mi spiego meglio
    tab1, tab2, tab3 sono tre tabelle dove sono dentro tutti gli utenti registrati
    e vorrei fare il join con la tabella postobarcatemp per il semplice fatto che devo andare a controllorare se nel campo mail della tabella postobarcatemp sia presente una mail che sia gia stata registrata nel sito quindi o nella tab1, tab2 , tab3 del sito
    x questo vorrei fare una unione di tt e tre e poi dopo fare il join con la tab di postobarcatemp

    Codice PHP:
    $query "SELECT postobarcatemp.*, tab.id as idutente FROM postobarcatemp LEFT JOIN tab ON postobarcatemp.mail = tab.mail " 
    questa e la query utilizzata per fare il join con una tabella

  9. #9
    ok, ora credo di aver capito.

    Non conosco bene la union quindi provo a darti una soluzione alternativa non so se migliore o peggiore

    Ti crei una Tabella con i campi che sono quelli che provengono dalla union delle 2 tabelle che volevi fare.

    A questo punto fai una query : INSERT INTO Tabella Select....

    Quindi ti inserisci nella nuova tabella i dati provenienti dalle 2 tabelle. A questo punto la nuova tabella ottenuta la puoi mettere tranquillamente in join con la terza tabella.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  10. #10
    Ciao,
    prova così:

    SELECT postobarcatemp.*, tab.id as idutente
    FROM postobarcatemp LEFT JOIN
    (select id, mail from tab1
    union all select id, mail from tab2
    union all select id, mail from tab3
    )tab
    ON postobarcatemp.mail = tab.mail

    Ciao
    Mik

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.