Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [MySql] Select dinamiche con n parametri

    Salve,

    ho un problema:
    ho due tabelle più o meno fatte così

    codice:
    tabella1.
      id, 
      par1,
      par2,
      par3
    
    tabella2.
      id,
      idTabella1,
      nomeCampo,
      valoreCampo
    avrei bisogno di formulare una query unendo tabella 1 e tabella 2 recuperando i tre parametri dalla tabella1 e selezionando n parametri dalla tabella2. È possibile farlo?

    In tabella2 dentro nomeCampo ci sono diciamo 5 o 6 tipi di campo e dei valori corrispondenti.
    Dovrei formulare la query selezionando
    par1, par2, par3, e poi i 5/6 campi dalla tabella2.
    Spero di esseremi spiegato...

    Ho provato con una subquery facendo una distinct nella tabella2 per recuperare questi parametri ma Sql mi ritorna questo errore: Subquery returns more than 1 row

    /EDIT
    Dimenticavo, dovrei riuscire a fare il tutto (possibilmente) senza conoscere il numero dei parametri presenti
    わさび

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    forse non ho compreso il tuo problema ma mi sembra di aver capito che tutto ciò di cui hai bisogno sia una semplice JOIN, prova a modificare il seguente codice con i dati veri



    Codice PHP:

    $t1 
    "tabella1";
    $t2 "tabella2";
    $f "a.*, b.id, b.nomeCampo, b.valoreCampo";
    $w "WHERE a.par1 = 'pippo' "// è solamente un esempio

    $sql "SELECT " $f " FROM " $t1 " a LEFT JOIN " $t2 " b ON  a.id = b.idTabella1 " $w " "

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Ciao Razorblade,
    il problema vero e proprio e che dovrei riuscire a fare tutto solo tramite sql senza l'uso del php.

    Infatti se potessi usare php, farei
    prima una select distinct per recuperare tutti i tipi di parametri presenti nella tabella2
    e poi dentro il while del loop farei le select che mi occorrono

    L'sql che mi serve è questo,
    codice:
    select
      r.id,
      r.submitted,
      r.ip,
    (
      select
      value
      from
      tabella2 s
      where
      r.id = s.record and
      s.name='name'
    ) as parName,
    (
      select
      value
      from
      tabella2 s
      where
      r.id = s.record and
      s.name='surname'
    ) as parSurname,
    (
      select
      value
      from
      tabella2 s
      where
      r.id = s.record and
      s.name='position'
    ) as parPosition
    from
      tabella1 r
      where r.name = 'TEST'
    solo che come dicevo, qui ho scritto manualmente i nomi dei parametri, mentre a me invece servirebbe qualcosa senza scrivere i nomi dei parametri manualmente
    わさび

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