Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

    [MySQL] Selezionare degli id in base ad un controllo su un altro campo in più record

    codice:
    id_a    id_m    
    3	25
    8	25
    5	25
    11	25
    3	26
    8	26
    5	26
    11	26
    11	27
    1	27
    2	27
    2	28
    10	28
    2	29
    10	29
    Non so bene come spiegarmi quindi vi faccio degli esempi tenendo come base la tabella sopra.

    Devo selezionare tutti gli id_a che hanno id_m 25 e 27
    la SELECT deve ritornarmi solo l'id_a 11

    Devo selezionare tutti gli id_a che hanno id_m 25, 26 e 29
    la SELECT non deve ritornarmi nessun id_a

    Devo selezionare tutti gli id_a che hanno id_m 25 e 26 l
    a SELECT deve ritornarmi gli id_a 3,5,8,11

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select t1.id_a
    from tabella as t1
    left join tabella as t2
    on t1.id_a = t2.id_a
    and t1.id_m = 25
    and t2.id_m = 27
    where t2.id is not null

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    E se dovessi avere più di 2 id_m da verificare?
    Non penso di poter aggiungere altri and a questa query.
    Sbaglio?

  4. #4
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Ecco una soluzione che tiene conto anche delle tabelle che sono collegate alla prima tabella che postato:

    SELECT
    tbl_malattia.Malattia,
    tbl_malattia.IdMalattia
    FROM
    rel_apparato_malattia
    Inner Join tbl_malattia ON tbl_malattia.IdMalattia = rel_apparato_malattia.IdMalattia
    Inner Join tbl_apparato ON tbl_apparato.IdApparato = rel_apparato_malattia.IdApparato
    WHERE
    tbl_apparato.IdApparato IN (11, 3)
    GROUP BY
    tbl_malattia.IdMalattia
    HAVING COUNT(rel_apparato_malattia.IdMalattia) = 2

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.