Pagina 2 di 9 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 82

Discussione: Dati da due tabelle

  1. #11
    Ti do una piccola precisazione che ho scoperto leggendo il codice (che non è mio..io cerco solo di capirlo).....

    Le due tabella hanno un dato in comune.... chiamiamolo "nome".
    Quando l'autore scrive un articolo, guardando con phpmyadmin tutta la riga riguardante quell'articolo (nella tabella "articoli"), compare miracolosamente anche il campo "nome".
    Quindi nella tabella "articoli" avrò un campo "nome" che è identico al campo "nome" che c'è nella tabella "autori"
    Ora...quando richiamo un determinato articolo vorrei che mi estrapolasse anche i dati del suo autore prendendoli dalla tabella "autori". In poche parole il l'operazione che posso svolgere è: se "nome" in tabella "autori" è = a "nome" in tabella "articoli" allora stampami i dati di tutte e due le tabelle

    Lo so..non si è capito niente
    [...Ubi iacet dimidium, iacet pectus meum...]

  2. #12
    Semplificando....
    dato che a me interessi che mi scriva i dati provenienti da 2 tabelle diverse.
    Lasciamo perdere il parametro comune, la sintassi quale sarebbe?

    "SELECT * FROM utenti JOIN articoli"; ????????

    [...Ubi iacet dimidium, iacet pectus meum...]

  3. #13
    Originariamente inviato da badcat
    Ti do una piccola precisazione che ho scoperto leggendo il codice (che non è mio..io cerco solo di capirlo).....

    Le due tabella hanno un dato in comune.... chiamiamolo "nome".
    Quando l'autore scrive un articolo, guardando con phpmyadmin tutta la riga riguardante quell'articolo (nella tabella "articoli"), compare miracolosamente anche il campo "nome".
    Quindi nella tabella "articoli" avrò un campo "nome" che è identico al campo "nome" che c'è nella tabella "autori"
    Ora...quando richiamo un determinato articolo vorrei che mi estrapolasse anche i dati del suo autore prendendoli dalla tabella "autori". In poche parole il l'operazione che posso svolgere è: se "nome" in tabella "autori" è = a "nome" in tabella "articoli" allora stampami i dati di tutte e due le tabelle

    Lo so..non si è capito niente
    aridaje..

    chiamalo nome, chiamalo id, o chiamalo cippirimerlo.. la sostanza non cambia...

    SELECT <campi>
    FROM <tabella1>
    JOIN <tabella2> ON <condizione di join>
    [WHERE <altre condizioni>]
    [ORDER BY <campi [ASC|DESC]
    etc etc

    SELECT *
    FROM utenti
    JOIN articoli ON articoli.nome = utenti.nome
    WHERE articoli.id = 1

    se la chiave di articoli è "id".. altrimenti vale lo stresso.. basta che cambi il nome del campo

    mettila in phpmyadmin (sql) e vedi che esce fuori...

    poi prova delle varianti in base a quello che ti ho detto.....

  4. #14
    Originariamente inviato da badcat
    Lasciamo perdere il parametro comune, la sintassi quale sarebbe?
    lasciando perdere il campo (o attributo, comunque non parametro) "comune" (in realtà c'è una referenza tra due campi delle due tabelle) non puoi fare quello che vuoi :rollo:

    Puoi solo ottenere un prodotto cartesiano, ovvero tutti gli articoli combiati con tutti gli autori.. proprio il contrario di quello che vuoi tu.. e cioè che un articolo sia combinato con il suo unico (in questo caso) autore...

    potresti anche volere che un autore sia combinato a tutti gli articoli che ha scritto.. e allora dovresti fare:

    SELECT *
    FROM articoli
    JOIN utenti ON articoli.nome = utenti.nome
    WHERE utenti.nome = 'tizio'


    non so più che dirti.. te l'ho ripetuto una decina di volte... le cose sono due, o provi o provi.. non è che posso scriverti un libro sul tema.. anche perchè voilendo ne trovi già centinaia....

  5. #15

    E ci sto provando!!! Ma non va...devo capire il perchè...mumble mumble
    [...Ubi iacet dimidium, iacet pectus meum...]

  6. #16
    Ce l'ho fatta!!!!
    Grazie!
    [...Ubi iacet dimidium, iacet pectus meum...]

  7. #17
    Leggendovi credo di aver compreso il mfunzionamento logico della funzione JOIN.

    Vediamo se ci sono:

    Ho due tabelle:

    tab_nazione
    id
    nazione
    zona

    Tab_peso
    id
    zona
    peso

    Voglio selezionare per una nazione i pesi relativi alla zona della nazione.

    Quindi credo sia:

    SELECT* FROM tab_nazione JOIN tab_peso ON tab_nazione.zona=tab_peso.zona WHERE tab_peso.peso= $_POST

    Potrei inserire un WHERE anche all'inizio della query cosi?

    SELECT* FROM tab_nazione WHERE NAZIONE=$_POST JOIN tab_peso ON tab_nazione.zona=tab_peso.zona WHERE tab_peso.peso= $_POST

  8. #18
    Originariamente inviato da Sanctis 410
    Leggendovi credo di aver compreso il mfunzionamento logico della funzione JOIN.

    Vediamo se ci sono:

    Ho due tabelle:

    tab_nazione
    id
    nazione
    zona

    Tab_peso
    id
    zona
    peso

    Voglio selezionare per una nazione i pesi relativi alla zona della nazione.

    Quindi credo sia:

    SELECT* FROM tab_nazione JOIN tab_peso ON tab_nazione.zona=tab_peso.zona WHERE tab_peso.peso= $_POST
    $_POST['peso'] immagino..


    Potrei inserire un WHERE anche all'inizio della query cosi?

    SELECT* FROM tab_nazione WHERE NAZIONE=$_POST JOIN tab_peso ON tab_nazione.zona=tab_peso.zona WHERE tab_peso.peso= $_POST
    le condizioni vanno dopo...

    SELECT *
    FROM tab_nazione
    JOIN tab_peso ON tab_nazione.zona=tab_peso.zona
    WHERE tab_peso.peso= $_POST['peso'] AND nazione =$_POST['nazione']

  9. #19
    Si scusa, non avevo in testa la sintassi giusta.

    Dunque son riuscito a capirne il funzionamento?

    Grazie.

    Yepphaaaaa

  10. #20
    Hemm..... e se volessi legare 3 tabelle?

    tab_corriere
    id
    corriere
    servizio

    tab_nazione
    id
    nazione
    zona
    servizio

    Tab_peso
    id
    zona
    peso

    Come prima ma legare tab_corriere a tab_nazione ramite campo servizio?

    Si puo fare un doppio JOIN?

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.