[Tecnica] inner join

bartrosso bartrosso a gmail.com
Mar 29 Nov 2011 10:39:04 GMT


riesco con la union a stampare tutti gli elementi ordinati ed è gia molto

il problema è un altro adesso,

so quali sono gli id e le datediconsegna ma non riesco a risalire alla
tabella di provenienza

ottengo

id1     data 11-11-2011 (cornici)
id2     data 12-11-2011 (cornici)
id32   data 13-11-2011 (schedaprogetto)

ma non riesco a memorizzare la tabella da cui provengono...
credo che mi converrebbe veramente inserire al momento dell'inserimento
in un altra tabella questi due dati con un terzo campo Tipo che salvi se
sis tratta di cornici o di schedeprogetto
e poi usare quella per recuperare i dati

grazie di tutto a tutti comunque.


sarà il whiskyno torbato forte stravecchio di ieri sera , ma stamane sono
leeeeentooooo


tanga



2011/11/29 Martino di Filippo <puntodifuga a gmail.com>

> Se vuoi solo i campi "comuni" alle due tabelle:
>
> SELECT id, idoperatore, descrizione, datainizio, datafine FROM
> schedaprogetto
> UNION
> SELECT id, idoperatore, descrizione, datainizio, dataconsegna as
> datafine FROM cornici
>
> Puoi ovviamente usare ORDER BY sul risultato della UNION per ordinarli
> tutti.
> dataconsegna as datafine serve perche' i nomi dei campi nelle due tabelle
> non corrispondono, e dovresti altrimenti controllare $row['dataconsegna']
> || $row['datafine'] a seconda di quale sia valido per quella riga ;)
>
> Se invece vuoi tutti i campi perche' di serve ad esempio budget nel caso
> si tratti di un progetto:
>
> SELECT id, idprogetto, idoperatore, budget, descrizione, tipologia,
> datainizio, datafine, NULL as idscheda, NULL as statopratica FROM
> schedaprogetto
> UNION
> SELECT id, NULL as idprogetto, idoperatore, NULL as budget, descrizione,
> NULL as tipologia, datainizio, dataconsegna as datafine, idscheda,
> statopratica FROM cornici
>
> Ti restituisce un elenco di righe che avranno alcuni valori null a seconda
> della tabella da cui provengono (le righe da "cornici" avranno ad esempio
> idprogetto nullo).
>
>
> Martino
>
>
>
> 2011/11/29 bartrosso <bartrosso a gmail.com>
>
>> tabella schedaprogetto
>> id primary key
>> idprogetto chiave esterna per la specifica del progetto
>> idoperatore
>> budget
>> descrizione
>> tipologia
>> datainizio
>> datafine
>>
>>
>>
>>
>> tabella cornici
>>
>> id primary key
>> idscheda chiave esterna con dettaglio pezzi in uso
>> idoperatore
>> descrizione
>> datainizio
>> dataconsegna
>> statopratica
>>
>>
>>
>> i dati contenuti adesso sono completamente casuali
>>
>> se eseguo una semplice select su cornici ottengo 3 elementi
>> se eseguo una select su schedaprogetto ottengo 2 elementi
>>
>> vorrei una select che mi dia i 5 elementi cosi da poterli ordinare per
>> dataconsegna e stop
>>
>> inner join mi restituisce 6 elemeni con tutte le combinazioni così
>> tabellate, che mi rende impossibile ciclare per
>>
>> t1t1
>> t1t2
>> t1t3
>> t2t1
>> t2t2
>> t2t3
>>
>>
>> p.s. ho letto ora la tua ultima mail, ma ormai te la invio lo stesso :-)
>>
>> tanga
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2011/11/29 Motaz Abuthiab <moty66 a gmail.com>
>>
>>> Puoi incollare la struttora delle tabelle ed esempio di dati ?
>>>
>>>
>>> Il giorno 29 novembre 2011 11:10, bartrosso <bartrosso a gmail.com> ha
>>> scritto:
>>>
>>> ti ringrazio delle risposte velocissime, ma continuo ad avere problemi.
>>>>
>>>> Non è difficile, ho letto i manuali, l'ho anche gia rifatto in passato,
>>>> ma io da ste tabelle non riesco a tirare fuori niente. quindi sto
>>>> sbagliando qualcosa.
>>>>
>>>> Allora ho due tabelle, con UN SOLO elemento ciascuno
>>>>
>>>> fatta la select cornici.*, schedaprogetto.* FROM cornici,
>>>> schedaprogetto dallo spazio SQL di phpmyadmin ottengo
>>>> non due ma una riga di risultato, contenente TUTTI i campi delle due
>>>> tabelle
>>>>
>>>> come faccio ciclarle?
>>>>
>>>> se inserisco più elementi per riga non ottengo le righe delle tabelle,
>>>> ottengo una loro combinazione.
>>>>
>>>> cioè 2 elementi per tabella mi restituiscono 4 elementi contenenti le
>>>> combinazioni,
>>>>
>>>> 2 elementi in una e 3 nell'altra ottengo 6 righe con le combinazioni 2X3
>>>>
>>>> e cosi via.
>>>>
>>>>
>>>> Semplicemente mi servono i risultati delle due select messi in fila,
>>>>
>>>> c'è il modo o devo crearmi per ogni inserimento una tabella terza che
>>>> si salvi TUTTI gli inserimenti con riferimenti esterni?? mi sembra strano..
>>>>
>>>>
>>>> tanga
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 2011/11/29 Motaz Abuthiab <moty66 a gmail.com>
>>>>
>>>>> Buongiorno
>>>>>
>>>>> select t1.*,t2.*, t1.dataconsegna as t1dataconsegna , t2.dataconsegna
>>>>> as dataconsegna2 from tablella1 as t1, tabella2 as t2 where .........
>>>>>
>>>>> cosi hai due data consegna
>>>>>
>>>>> m.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Il giorno 29 novembre 2011 10:53, bartrosso <bartrosso a gmail.com> ha
>>>>> scritto:
>>>>>
>>>>> scusatemi,
>>>>>> mi spiego meglio.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ho due tabelle una di ordini cornici e una di schedeprogetto (altra
>>>>>> categoria lavorativa). Entrambe le tabelle contengono il dato dataconsegna.
>>>>>>
>>>>>> devo ordinare tutti gli elementi di entrambe le tabelle disposte per
>>>>>> dataconsegna per tirare fuori uno scadenzario.
>>>>>>
>>>>>> la domanda, devo semplicemente selezionare tutti gli elementi da
>>>>>> entrambe le tabelle e stamaprle ordinandole per dataconsegna.
>>>>>>
>>>>>>
>>>>>> quale tipo di join devo usare?
>>>>>>
>>>>>> tanga
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2011/11/29 bartrosso <bartrosso a gmail.com>
>>>>>>
>>>>>>> mi sono letto il fucking manual, ma qual'è la differenza reale tra
>>>>>>> fetch array e fetch assoc??
>>>>>>> non capisco, crea un array associativo invece di uno ... uguale con
>>>>>>> un valore assoc su eventuali secondi parametri.
>>>>>>> bene.
>>>>>>>
>>>>>>> tradotto?
>>>>>>>
>>>>>>> è più meglio?
>>>>>>>
>>>>>>> tanga
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2011/11/28 Motaz Abuthiab <moty66 a gmail.com>
>>>>>>>
>>>>>>>> Non devi usare tabella.alias, basta il nome del campo, se hai due
>>>>>>>> campi con nomi uguali dovresti fare select t1.id as t1_id, t2.idas t2_id from t1, t2 where ......
>>>>>>>>
>>>>>>>> Ti consiglio di usare mysql_fetch_assoc() invece di fetch_array()
>>>>>>>>
>>>>>>>> M.
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Crea il tuo sito con <http://dinamocms.com>dinamocms.com
>>>>>>>>
>>>>>>>> Il giorno 28/nov/2011, alle ore 19:50, bartrosso <
>>>>>>>> bartrosso a gmail.com> ha scritto:
>>>>>>>>
>>>>>>>> scusatemi
>>>>>>>>
>>>>>>>> ma quando devo fare una inner join con mysql e unisco due tabelle,
>>>>>>>> usando gli alias,
>>>>>>>>
>>>>>>>> come si fa il fetch array dei risultati?
>>>>>>>>
>>>>>>>> Es:
>>>>>>>>
>>>>>>>> $query=mysql_query("SELECT * from pippo as p, topolino as t");
>>>>>>>>
>>>>>>>> while($res=mysql_fetch_array($query)){
>>>>>>>> $id1=$res['p.id'];
>>>>>>>> $id2=$res['t.id'];
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> QUESTO NON MI FUNZIONA, ma non mi da neanche errori
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Tanga aka Bartrosso
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Sono ciò che sono grazie a quello che siamo tutti,
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> un mio amico mi ha detto che ubuntu significa: "Non so configurare
>>>>>>>> Debian.."
>>>>>>>>
>>>>>>>>
>>>>>>>> «Immagina se ogni persona sulla terra potesse condividere con
>>>>>>>> accesso libero e totale tutta la conoscenza umana.»
>>>>>>>> — Jimmy Wales, fondatore di Wikipedia
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Tecnica mailing list
>>>>>>>> Tecnica a liste.siena.linux.it
>>>>>>>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Tecnica mailing list
>>>>>>>> Tecnica a liste.siena.linux.it
>>>>>>>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sono ciò che sono grazie a quello che siamo tutti,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> un mio amico mi ha detto che ubuntu significa: "Non so configurare
>>>>>>> Debian.."
>>>>>>>
>>>>>>>
>>>>>>> «Immagina se ogni persona sulla terra potesse condividere con
>>>>>>> accesso libero e totale tutta la conoscenza umana.»
>>>>>>> — Jimmy Wales, fondatore di Wikipedia
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sono ciò che sono grazie a quello che siamo tutti,
>>>>>>
>>>>>>
>>>>>>
>>>>>> un mio amico mi ha detto che ubuntu significa: "Non so configurare
>>>>>> Debian.."
>>>>>>
>>>>>>
>>>>>> «Immagina se ogni persona sulla terra potesse condividere con accesso
>>>>>> libero e totale tutta la conoscenza umana.»
>>>>>> — Jimmy Wales, fondatore di Wikipedia
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Tecnica mailing list
>>>>>> Tecnica a liste.siena.linux.it
>>>>>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>>
>>>>> Crea il tuo sito con Dinamo Cms
>>>>> http://www.dinamocms.com
>>>>> .
>>>>>
>>>>> _______________________________________________
>>>>> Tecnica mailing list
>>>>> Tecnica a liste.siena.linux.it
>>>>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Sono ciò che sono grazie a quello che siamo tutti,
>>>>
>>>>
>>>>
>>>> un mio amico mi ha detto che ubuntu significa: "Non so configurare
>>>> Debian.."
>>>>
>>>>
>>>> «Immagina se ogni persona sulla terra potesse condividere con accesso
>>>> libero e totale tutta la conoscenza umana.»
>>>> — Jimmy Wales, fondatore di Wikipedia
>>>>
>>>>
>>>> _______________________________________________
>>>> Tecnica mailing list
>>>> Tecnica a liste.siena.linux.it
>>>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>>
>>> Crea il tuo sito con Dinamo Cms
>>> http://www.dinamocms.com
>>> .
>>>
>>> _______________________________________________
>>> Tecnica mailing list
>>> Tecnica a liste.siena.linux.it
>>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>>
>>>
>>
>>
>> --
>> Sono ciò che sono grazie a quello che siamo tutti,
>>
>>
>>
>> un mio amico mi ha detto che ubuntu significa: "Non so configurare
>> Debian.."
>>
>>
>> «Immagina se ogni persona sulla terra potesse condividere con accesso
>> libero e totale tutta la conoscenza umana.»
>> — Jimmy Wales, fondatore di Wikipedia
>>
>>
>> _______________________________________________
>> Tecnica mailing list
>> Tecnica a liste.siena.linux.it
>> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>>
>>
>
> _______________________________________________
> Tecnica mailing list
> Tecnica a liste.siena.linux.it
> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>
>


-- 
Sono ciò che sono grazie a quello che siamo tutti,



un mio amico mi ha detto che ubuntu significa: "Non so configurare Debian.."


«Immagina se ogni persona sulla terra potesse condividere con accesso
libero e totale tutta la conoscenza umana.»
— Jimmy Wales, fondatore di Wikipedia
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://liste.siena.linux.it/pipermail/tecnica/attachments/20111129/e638132e/attachment-0001.htm>


Maggiori informazioni sulla lista Tecnica