Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP/MySql] Interrogazione particolare... (SELECT)

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Question [PHP/MySql] Interrogazione particolare... (SELECT)

    Salve ragazzi!
    Mi servirebbe una cosa del genere: ho due tabelle: "Tabella1" e "Tabella2".
    In "Tabella1" c'è una colonna chiamata "ColonnaTabella1".
    Codice:
    SELECT * FROM Tabella1 WHERE ColonnaTabella1 = 'var'
    In "Tabella2" c'è una colonna chiamata "Colonna1Tabella2" e una chiamata "Colonna2Tabella2".
    Dovrei eseguire la SELECT che ho scritto prima, sapendo che 'var' è un valore anche di "Colonna1Tabella2".
    Quindi:
    Tabella1: Colonna1Tabella1: 'var'
    Tabella2: (Colonna1Tabella2: 'var'), (Colonna2Tabella2: 'var2')
    Dovrei selezionare da "Tabella1" dove "ColonnaTabella1" = "var" e in "Tabella2" ci dev'essere, in "Colonna1Tabella2", una riga contenente "var", contemporaneamente, sempre in "Tabella2", "Colonna2Tabella2", deve essere uguale a "var2".
    Per farvi capire:
    Codice:
    SELECT ColonnaTabella1 AS MysqlColonnaTabella1 FROM Tabella1 WHERE EXIST (SELECT * FROM Tabella2 WHERE Colonna1Tabella2 = MysqlColonnaTabella1 AND Colonna2Tabella2 = 'var2')
    E dovrei avere il valore "ColonnaTabella1", ovvero "MysqlColonnaTabella1".
    Praticamente evito di fare un controllo con mysq_num_rows().
    Credo (al 99%) di non essermi spiegato bene... provo a riformulare la domanda?
    Grazie.

  2. #2
    L'avatar di trylab
    trylab non è connesso Neofita
    Data registrazione
    02-09-2012
    Messaggi
    24

    Predefinito

    Mmm...spero di aver capito cosa chiedi...perchè tra colonnatabella1 etc etc...non sono molto sicuro.


    La query che ho scritto seleziona tutte le tuple di tabella1 restituendo il valore contenuto in ColonnaTabella1 che:
    -hanno in ColonnaTabella1 un valore presente anche in Colonna1Tabella2 di Tabella2
    -colonna2tabella2 di tabella 2 contine il valore 'var2'

    stando alla tua query:

    Codice:
    SELECT ColonnaTabella1 AS MysqlColonnaTabella1
    FROM Tabella1
    WHERE ColonnaTabella1 IN ( 
    SELECT Colonna1Tabella2 
    FROM Tabella2 
    WHERE Colonna1Tabella2 = MysqlColonnaTabella1 AND Colonna2Tabella2 = 'var2')
    oppure io farei così (potresti usare anche una equi-join ma personalmente non mi piace ):

    Codice:
    SELECT ColonnaTabella1 AS MysqlColonnaTabella1
    FROM Tabella1 INNER JOIN Tabella2 ON ColonnaTabella1=Colonna1Tabella2
    WHERE Colonna2Tabella2 = 'var2'

  3. #3
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Scusami, non avevo pensato che avevo già un po' di codice (che mi hai dato tu ).
    Ecco il codice che ho per ora.
    Codice:
    SELECT IDElemento, COUNT(*) AS conteggio FROM Community WHERE IDUtente = 1 AND Tipo = 1 GROUP BY IDElemento ORDER BY conteggio DESC
    Devo verificare che "IDElemento" esista in un'altra tabella.
    Grazie.
    P. S.: devi abituarti a me... cerco sempre la via più complessa sia per spiegare che per fare le cose...

  4. #4
    L'avatar di trylab
    trylab non è connesso Neofita
    Data registrazione
    02-09-2012
    Messaggi
    24

    Predefinito

    Ahhahaha...no problem!...

    Comunque farei così:

    Codice:
    SELECT IDElemento, COUNT(*) AS conteggio
    FROM Community 
    WHERE IDUtente = 1 AND Tipo = 1 AND IDElemento IN (SELECT <IDElemento_tabella> FROM <tabella>)
    GROUP BY IDElemento ORDER BY conteggio DESC
    Praticamente facciamo la verifica che ti serve tramite:
    Codice:
    .....AND IDElemento IN (SELECT <IDElemento_tabella> FROM <tabella>)......
    scartando tutti gli IDElemento che non sono presenti nella colonna <IDElemento_tabella> di <tabella>.

    Così dovrebbe andare...ma non sono sicuro al 1000% vista l'ora...

  5. #5
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Perfetto grazie mille nuovamente

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •