|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
![]() |
#1 |
Il re di bastoni
Top Poster
Registrato: 26-04-2001
Loc.: Milàn
Messaggi: 23.413
![]() |
[MySQL] query complessa
ognuna ha un campo id, e P ha anche id_vendita, che si riferisce a vendite.id dunque il join si fa su vendite.id=pagamenti.id_vendita Ora, uso un frontend per le query, MySQL Front. Non so se sia un bug di questo, ma una query non mi dà i risultati sperati. mettiamo io abbia questa situazione: Codice:
V P 1 2 2 3 4 5 5 Vale a dire per le vendite 1, 3 e 4 NON ci sono pagamenti Quel che vorrei, se possibile con un unica query, è proprio la tabella finale che vedete su: vale a dire tutte le vendite, con accanto i campi del pagamento se e solo se questo esiste. Codice:
SELECT vendite.id, pagamenti.id_vendita FROM vendite, pagamenti WHERE vendite.id = pagamenti.id_vendita UNION SELECT vendite.id FROM vendite WHERE vendite.id NOT IN (SELECT id_vendita FROM pagamenti) ORDER BY vendite.id Dato che il mio SQL è un po' arrugginito..trovate errori? Sapete ottimizzare la query? Grazie!
___________________________________
Un giorno in cui voleva fare il cattivo, Mister Coniglietto sbirciò oltre la siepe e vide che l'orto del Contadino Fred era pieno di lattuga fresca e verde; Mister Coniglietto, invece, non era pieno di lattuga per niente. E ciò gli parve un'ingiustizia. Sono un Vampiro! I am a Vampire! |
![]() |
![]() |
![]() |
#2 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
![]() |
A occhio e croce è dura che funzioni, poichè i due campi select non sono "conformabili", cioè il primo ha due campi, il secondo uno solo (penso che poi, oltre a essere nello stesso numero, debbano anche essere ordinatamente dello stesso tipo).
Senza stare a dannarsi l'anima per risolvere il problema in questo modo, io userei un left outer join, che fa proprio quello che ti serve: prende cioè tutte le tuple nella prima tabella (vendite) ed estende con valori null quelle che non hanno corrispondenti nella seconda (pagamenti) ![]() La sintassi per il left outer join è (a meno che MySql non adotti SQL esotici ![]() from TabellaSx S left join TabellaDx D on (S.campoDiJoin = D.campoDiJoin). Dimmi se funziona eh ![]() |
![]() |
![]() |
![]() |
#3 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
![]() |
Siccome anche il mio SQL è un po' arruginito, mi avvertono dalla regia (il libro di Ceri
![]() FROM TabellaSX S, TabellaDx D WHERE S.CampoDiJoin * = D.CampoDiJoin (per il right outer join, l'asterisco a occhio va dall'altra parte) |
![]() |
![]() |
![]() |
#4 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
![]() |
Toh va, sfaticato!
![]() |
![]() |
![]() |
![]() |
#5 | |
Il re di bastoni
Top Poster
Registrato: 26-04-2001
Loc.: Milàn
Messaggi: 23.413
![]() |
Quota:
![]() grazie! (Y)
___________________________________
Un giorno in cui voleva fare il cattivo, Mister Coniglietto sbirciò oltre la siepe e vide che l'orto del Contadino Fred era pieno di lattuga fresca e verde; Mister Coniglietto, invece, non era pieno di lattuga per niente. E ciò gli parve un'ingiustizia. Sono un Vampiro! I am a Vampire! |
|
![]() |
![]() |
![]() |
#6 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
![]() |
Figurati
![]() |
![]() |
![]() |
![]() |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
|
|
![]() |
||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Access 2003: Query dinamica | malena_visentin | Office suite | 8 | 11-02-2009 15.07.24 |
[Access 2K] Un aiuto per stampa query usando un report | Fat George | Office suite | 2 | 11-12-2008 16.02.26 |
[MYSQL] Problema subquery | Redentore | Programmazione | 4 | 27-08-2007 09.42.42 |
Access Query che raggruppa più query? | scarmax | Office suite | 3 | 31-12-2006 14.53.30 |
Problema query a campi incrociati | ken87 | Office suite | 0 | 09-11-2006 18.46.40 |