Visualizzazione dei risultati da 1 a 4 su 4

Discussione: query particolare

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    390

    query particolare

    Ciao,

    ho un piccolo quesito:

    supponiamo che io abbia una tabella di un DB in mysql che contiene un campo id (con l' id del record), un campo nome (nome) ed un campo 'tipo' (che contiene dei valori ad esempio: 1,2,3,4).
    Poi ho un altra tabella che specifica il significato dei valori contenuti nel campo tipo della tabella precedente.

    Come faccio a fare una query che mi restituisca i nome dei tipi contenuti nella seconda tabella per i record selezionati nella prima??

    Grazie

  2. #2
    Elimina il campo tipo e crea una relazione molti a molti.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    390
    cioè aggiungere una tabella per unire le due??

  4. #4
    semplicemente mettendo in join le 2 tabelle

    allora ricapitolando la tabella 1 è così:

    id, nome, tipo

    dove id è chiave primaria e tipo chiave esterna della tabella 2

    tabella 2

    tipo, campo1, campo2, ecc ....

    la query sarà

    select *
    from tabella1 as tab1
    join tabella2 as tab2
    on tab1.tipo = tab2.tipo

    questa però ti estrarrà i record della prima che hanno una corrispondenza nella seconda (questo si traduce in tutti i record della prima nel caso in cui tu abbia settato correttamente il vincolo di chiave esterna)

    nel caso non ci sia nessun vincolo di chiave esterna farai così

    select *
    from tabella1 as tab1
    left outer join tabella2 as tab2
    on tab1.tipo = tab2.tipo

    e i record della prima tabella che non trovano corrispondenza nella seconda avranno i campi della tabella2 settati a NULL
    Ubuntu rulez!! :P

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.