unire union e join insieme

  • Creatore Discussione Creatore Discussione gian21
  • Data di inizio Data di inizio

gian21

Nuovo Utente
16 Mag 2013
23
0
0
salve ragazzi sono nuovissimo utente di questo forum
e mi sto approcciando da poco con linguaggio php con database mysql
la mia domanda e semplice
vorrei fare un unione tra tabelle quindi tab1, tab2 , tab3 che contengono id e mail quindi due campi indentici e vorrei unirli per poi fare un join con un altra tabella tab4 ma sintatticamente non so come fare
sono riuscito solo nel join con due tabella senza mai usare anche l'union vi posto cio che sono risucito a fare

PHP:
$query = "SELECT postobarcatemp.*, tab.id as idutente FROM postobarcatemp LEFT JOIN tab ON postobarcatemp.mail = tab.mail "
 
Ciao, benvenuto
la sintassi potrebbe essere cosi
Codice:
SELECT * (
SELECT * FROM tab1
UNION ALL
SELECT * FROM tab2
UNION ALL
SELECT * FROM tab3
) as tab 
JOIN tab4 USING(mail)
non ho testato
 
Query non valida: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(SELECT * FROM tab1 UNION ALL SELECT * FROM tab1 UNION ALL SELE
 
manca il FROM
Codice:
SELECT * FROM (
SELECT * FROM tab1
UNION ALL
SELECT * FROM tab2
UNION ALL
SELECT * FROM tab3
) as tab 
JOIN tab4 USING(mail)
 
non puo essere lo stesso se hai modificato
ripostalo
 
salve ragazzi sono nuovissimo utente di questo forum
e mi sto approcciando da poco con linguaggio php con database mysql
la mia domanda e semplice
vorrei fare un unione tra tabelle quindi tab1, tab2 , tab3 che contengono id e mail quindi due campi indentici e vorrei unirli per poi fare un join con un altra tabella tab4 ma sintatticamente non so come fare
sono riuscito solo nel join con due tabella senza mai usare anche l'union vi posto cio che sono risucito a fare

PHP:
$query = "SELECT postobarcatemp.*, tab.id as idutente FROM postobarcatemp LEFT JOIN tab ON postobarcatemp.mail = tab.mail "

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


A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!
 
Hai già provato se funziona la query di Criric mettendola al posto della tua?
Codice:
SELECT * FROM (
SELECT * FROM tab1
UNION ALL
SELECT * FROM tab2
UNION ALL
SELECT * FROM tab3
) as tab 
JOIN tab4 USING(mail)
Se hai già provato e non va ti propongo un'altra soluzione.
 

Discussioni simili