[Tecnica] inner join

Motaz Abuthiab moty66 a gmail.com
Mar 29 Nov 2011 10:41:55 GMT


Guarda l'esmpio che ti ho postato prima

ho fatto SELECT "Cornice" as tipo, ... ect

hai il campo tipo per sapere quando il record è relativo a progetto o a cornice


Il 29 novembre 2011 11:39, bartrosso <bartrosso a gmail.com> ha scritto:
> 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.id as t2_id
>>>>>>>>> from t1, t2 where ......
>>>>>>>>> Ti consiglio di usare mysql_fetch_assoc() invece di fetch_array()
>>>>>>>>> M.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Crea il tuo sito con 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
>
>
> _______________________________________________
> 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
.


Maggiori informazioni sulla lista Tecnica