Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Inverso di inner join

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    13

    Inverso di inner join

    Vorrei che mi venissero visualizzati i dati non presenti tramite join tra tab. Con questo codice:
    Codice PHP:
    <?php 
             
    if(isset($_GET['punto_vendita_noleggio'])){
                
    $sql "select film.id_titolo as id_titolo, magaz.copie as copie, film.regista as regista, film.titolo as titolo, magaz.id_shop as id_shop from magaz left join film
                on magaz.id_titolo=film.id_titolo
                where magaz.id_shop="
    .$_GET['punto_vendita_noleggio']." order by film.titolo asc";
                
    $result mysql_query($sql);
                while (
    $row mysql_fetch_assoc($result)){
                    
    ?>
                     <option value="<?php echo $row['id_titolo'?>"><?php echo "ID - ".$row['id_titolo']. " - ".$row['titolo']. " di ".$row['regista']?></option>
                     <?php 
                
    }
             }
                
    ?>
    riesco ad avere i film presenti nel punto vendita. Io vorrei che mi venissero visualizzati i film non presenti in quel negozio. Ho provato a modificare il codice inserendo IS NULL ma forse l'ho messo male... la tab magaz permette valori null in id_shop e id_titolo.

    Grazie mille...
    dmiao83

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    13
    codice:
    if(isset($_GET['punto_vendita_noleggio'])){
    			$sql = "select *, film.id_titolo as id_titolo, film.regista as regista, film.titolo as titolo  from film where id_titolo not in(select magaz.id_titolo from magaz)";
    Così sono riuscito a far visualizzare solo i film non presenti in nessun negozio... per riuscire ad avere una distinzione tra negozi come dovrei fare???

    Mi spiego meglio

    shop 1
    film 1;
    film 2;
    film 5;

    shop 2
    film 2;

    shop 3
    film 5;
    Se seleziono shop2 vorrei che visualizzasse film1; film3; film4; film5.
    Il tutto mi serve non per lavoro...

    Grazie
    dmiao83

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    residenza
    Dublin
    Messaggi
    34
    Ho un po' di difficoltà a capire la struttura delle tabelle e i tipi di relazione, ma forse devi escludere il negozio interessato (sempre che magaz sia il negozio)

    codice:
    $sql = "select *, 
    film.id_titolo as id_titolo, 
    film.regista as regista, 
    film.titolo as titolo 
    from film 
    where id_titolo not in (
      select magaz.id_titolo 
      from magaz 
      where magaz.id_shop <> ".$_GET['punto_vendita_noleggio']."
    )";
    Chi non gode a tavola non gode neanche a letto

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 © 2026 vBulletin Solutions, Inc. All rights reserved.