Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Aiuto su SQL per filtrare dati da due tabelli eliminando i doppioni e stampando solo in una determinata condizione.

    Salve,
    ho una tabella chiamata "stagioni" che elenca le annate sportive, quindi 2016/2017, 2015/2016 ecc.
    ho un'altra tabella in cui sono registrati i giocatori associati a una determinata stagione, quindi il giocatore1 è legato a stagione 2016-2017 e 2015/2016, il giocatore2 è legato solo a stagione 2016/2017 e via dicendo.

    La mia necessità e quella di sparare fuori la stagione solo se al suo interno sono associati giocatori.

    Che SQL devo usare?

    Io ho fatto un DISTINCT e INNER JOIN per unire per le due tabelle e eliminare i doppioni, ma per mostare a video solo le annate a cui sono stati associati almeno un giocatore?

    SELECT DISTINCT nomeanno, Roster_Anno.anno, datainizio FROM Roster_Anno INNER JOIN Anno ON Roster_Anno.anno = Anno.anno ORDER BY datainizio DESC

  2. #2
    devi mettere in INNER JOIN anche la tabella dei giocatori

  3. #3
    ok, fatto

    SELECT DISTINCT nomeanno, Roster_Anno.anno, datainizio FROM (Roster INNER JOIN Roster_Anno ON Roster.idPlayer = Roster_Anno.idPlayer) INNER JOIN Anno ON Roster_Anno.anno = Anno.anno ORDER BY datainizio DESC

    ma ora quale comando devo usare per contare i giocatori abbinati a ogni stagione e stampare a video le stagioni se c'è almeno un giocatore?

  4. #4
    Posta la struttura delle tre tabelle, le chiavi che le legano e un esempio di ciò che vorresti in output

  5. #5
    Tabella ANNO = anno (Primary Key), nomeanno, datainizio, datafine

    Tabella Roster = idPlayer, nome, foto, ruolo, ecc...

    Tabella Roster_Anno = id (PK), anno (legato a tabella anno), idPlayer (legato a tabella roster), team (legato a tabella Team)

    La tabella Roster_Anno è un "ponte" che uso per collegare i giocatori a un determinato anno e a una determinata squadra, perchè il solito giocatore può essere legato a diverse annate e anche a diverse squadre (tipo uno juniores che gioca anche in prima squadra)

    io vorrei stampare a video le stagioni di "vita" di una squadra, esempio Under 15 che è nata nel 2014/2015 ed ha disputato la stagione 15/16, però quelle precedenti alla stagione 2014/15 non esisteva nessuna squadra Under 15, quindi non vi era associato nessun giocatore.

    Vorrei che le stagioni di una squadra inestinti, ovvero in cui non siano stati associati giocatori, non venissero visualizzate.

    PS: non ho il dono della sintesi e della chiarezza.

  6. #6
    rileggendo quello che ho scritto ho avuto l'illuminazione ed ho fatto cosi, risolvendo

    SELECT DISTINCT nomeanno, Roster_Anno.anno, datainizio FROM (Squadre INNER JOIN Roster_Anno ON Squadre.team = Roster_Anno.team) INNER JOIN Anno ON Roster_Anno.anno = Anno.anno WHERE Roster_Anno.team = Request.QueryString("team") ORDER BY datainizio DESC

  7. #7
    Quote Originariamente inviata da Ciombe Visualizza il messaggio
    rileggendo quello che ho scritto ho avuto l'illuminazione ed ho fatto cosi, risolvendo
    è quello che spero sempre, quando chiedo di descrivere tabele ecc. stavolta ha funzionato.

    Optime!

Tag per questa discussione

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.