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

    [REQ: mySQL] query avanzata

    Salve a tutti.
    Se ho 3 tabelle: FILM, ATTORI ed INTERPRETAZIONE con i codici dei film e degli attori associati, come faccio in modo rapido a selezionare tutti i film con l'attore X con il titolo Y?
    E se avessi anche le tabelle REGISTA e REGIA e volessi selezionare i film interpretati da X1 e X2 con il titolo Y diretto dal regista Z?

    Ciò che vi chiedo è la stringa della query SQL.ci sono modi macchinosi per arrivare a questo risultato, ma volevo usare un metodo più elegante ad esempio usando una JOIN tra le tabelle, ma non so farlo.

    Grazie a tutti!
    Cristian

  2. #2
    Ti posso dare una info generica su una join per il tuo caso.
    Avendo due campi identici (parliamo di tabelle MyISAM) questi possono essere relazionati per effettuare una ricerca. La sintassi sara' grossomodo la seguente:
    codice:
    SELECT *
    FROM attori as a
    LEFT JOIN film as f ON f.id_attore = a.id_attore
    WHERE a.id_attore = '$id_attore'
    Quindi con ON poni la prima condizione su quelle due tabelle e poi con il WHERE limiti la ricerca al solo attore voluto.

    Va da se che se nel where mettevi il film avresti avuto il film con tutti gli attori. Pero' qui le cose sarebbero un pelino piu' complesse, perche' la tabella film avrebbe una marea di record duplicati (tanti attori, stesso film).

    Il che gia' ti lascia supporre che la struttura del database potrebbe essere ottimizzata.... Vada per ora come risposta sulla JOIN...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.