Visualizzazione dei risultati da 1 a 5 su 5

Discussione: aiuto con query

  1. #1
    Utente di HTML.it L'avatar di nick03
    Registrato dal
    Apr 2008
    Messaggi
    121

    aiuto con query

    Ciao. mi serve un aiuto...

    ho queste 3 tabelle:
    DISCIPLINE
    discipline VARCHAR

    TIENE
    id_atleta INT
    disciplina VARCHAR

    CORSI
    id_corso INT
    disciplina VARCHAR

    sono collegate tra loro tramite disciplina.

    io vorrei avere una tabella finale che contenga:
    DISCIPLINA - NUMERO ATLETI PER OGNI DISCIPLINA - NUMERO CORSI PER OGNI DISCIPLINA

    la query ke ho provato a fare ed è sbagliata:
    codice:
    SELECT d.disciplina,COUNT(p.disciplina),COUNT(c.disciplina)
    FROM discipline d
    JOIN pratica p ON d.disciplina=p.disciplina
    JOIN corsi c ON d.disciplina=c.disciplina
    GROUP BY disciplina
    singolarmente riesco a contare il numero di corsi per ogni disciplina e il numero di atleti per ogni disciplina...
    ma non riesco ad unire le due query...

    le due query singole sono:
    codice:
    SELECT d.disciplina,COUNT(p.disciplina)
    FROM `discipline` d
    JOIN pratica p ON d.disciplina=p.disciplina
    GROUP BY disciplina
    codice:
    SELECT d.disciplina,COUNT(c.disciplina)
    FROM `discipline` d
    JOIN corsi c ON d.disciplina=c.disciplina
    GROUP BY disciplina
    sapete aiutarmi?

  2. #2
    urge (ri)lettura attenta e consapevole del regolamento (che NON è un optional...):

    - il titolo NON deve essere generico
    - va indicato il db con cui si sta lavorando


  3. #3
    Utente di HTML.it L'avatar di nick03
    Registrato dal
    Apr 2008
    Messaggi
    121
    pensavo di averlo scritto ma mi è sfuggito.
    Lavoro con MYSQL. Le tabelle sono in INNODB.

    Il titolo non posso modificarlo

  4. #4
    codice:
    SELECT DISCIPLINA, MAX(ATLETI), MAX(CORSI) FROM
    (
    SELECT d.disciplina AS DISCIPLINA,COUNT(p.disciplina) AS ATLETI, 0 AS CORSI
    FROM `discipline` d
    JOIN pratica p ON d.disciplina=p.disciplina
    GROUP BY disciplina
    
    UNION
    
    SELECT d.disciplina AS DISCIPLINA,0 AS ATLETI, COUNT(c.disciplina) AS CORSI
    FROM `discipline` d
    JOIN corsi c ON d.disciplina=c.disciplina
    GROUP BY disciplina
    ) AS T
    GROUP BY DISCIPLINA
    facce sape'

  5. #5
    Utente di HTML.it L'avatar di nick03
    Registrato dal
    Apr 2008
    Messaggi
    121
    Funziona!!!
    avevo provato anchio a fare una cosa del genere ma si vede che sbagliavo qlcs....bo...

    GRAZIE!!!!!!!!!!!!!!

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.