Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    non so cosa mi conviene fare, join o due select

    Ragazzi ho 3 tabelle dalle quali devo ricavare i dati.

    Vi spiego.
    3 tabelle
    1= id_destinazione,destinazione
    2= idTo, id_destinazione
    3= idTo, e molti altri campi

    ok adesso cosa vorrei riuscire a fare.

    Io passo id_destinazione devo ricavarmi tutti i risultati della tabella 3.
    Come mi conviene fare??
    Ovviamente per fare un codice pulito senza tanti artefatti.
    Ho pensato a delle join, ma non so come fare con 3 tabelle.

    ciao grazie

  2. #2
    non si capisce bene cosa vuoi fare...cmq se ho capito bene ti servono due INNER JOIN (tablella1 JOIN (tabella 2 JOIN tabella 3))..non è dificile..se mi dici esattamente le tabelle i VIR e cosa devi estrarre magari te la faccio pure!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    271
    se non ho capito male dovresti fare una cosa del genere


    select campo1, campo2, campo3, campo4, campo5, ...
    from tabella2, tabella3
    where
    tabella2.id_destinazione = "id che gli passi tu" AND
    tabella2.idTo = tabella3.idTo

    se gia conosci l'id di destinazionee non ti serve conoscere la descrizione dell'id_destinazione, puoi fare a meno di accedere a tabella1, quella che contiene id_destinazione e descrizione

    altrimenti

    select tabella1.descrizione, campo1, campo2, campo3, campo4, campo5, ...
    from tabella1, tabella2, tabella3
    where
    tabella1.id_destinazione = "id che gli passi tu" AND
    tabella1.id_destinazione = tabella2.id_destinazione AND
    tabella2.idTo = tabella3.idTo



    Ciao

  4. #4
    Prova così:

    SELECT
    tabella3.*

    FROM
    tabella1
    INNER JOIN tabella2 ON (tabella1.id_destinazione=tabella2.id_destinazione )
    INNER JOIN tabella3 ON (tabella2.id_to=tabella3.id_to)

    WHERE
    tabella1.id_destinazione = "inserisci l'id_destinazione"

    CIAU CIAU
    Se la vita ti sorride, ti sta prendendo per il cul0

  5. #5
    Originariamente inviato da pasaran
    se non ho capito male dovresti fare una cosa del genere


    select campo1, campo2, campo3, campo4, campo5, ...
    from tabella2, tabella3
    where
    tabella2.id_destinazione = "id che gli passi tu" AND
    tabella2.idTo = tabella3.idTo

    se gia conosci l'id di destinazionee non ti serve conoscere la descrizione dell'id_destinazione, puoi fare a meno di accedere a tabella1, quella che contiene id_destinazione e descrizione

    altrimenti

    select tabella1.descrizione, campo1, campo2, campo3, campo4, campo5, ...
    from tabella1, tabella2, tabella3
    where
    tabella1.id_destinazione = "id che gli passi tu" AND
    tabella1.id_destinazione = tabella2.id_destinazione AND
    tabella2.idTo = tabella3.idTo



    Ciao
    Grazie a tutti ho usato questo sistema che mi sembrava il iù pulito di tutti.
    greazie a tutti
    grazie

  6. #6
    alla fine ho fatto una join perchè è decisamente molto + veloce. Da 30 secondi sono passato a 0,4.
    Ve la metto così vedete la differenza.
    ciuao

    SELECT *
    FROM backoffice_to, backoffice_destinazioni, backoffice_to_rel_dest
    WHERE backoffice_to.ToNome LIKE '%londra%'
    OR backoffice_to.ToTelefono LIKE '%londra%'
    OR backoffice_to.ToDescrizioneBreve LIKE '%londra%'
    OR backoffice_to.ToParoleChiave LIKE '%londra%'
    OR (
    backoffice_destinazioni.tipo = 'dest'
    AND backoffice_destinazioni.nazione LIKE '%londra%'
    AND backoffice_destinazioni.idDestinazione =
    backoffice_to_rel_dest.idDestinazione
    AND backoffice_to_rel_dest.idTo = backoffice_to.idTo
    )
    GROUP BY backoffice_to.idTo
    ORDER BY backoffice_to.ToNome

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.