Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Query MySQL

  1. #1

    Query MySQL

    Salve a tutti: ho un problema in questa querysql e non riesco a capire il perchè:

    codice:
    SELECT DISTINCT tournament_team.nickname, api_team.name,tournament_team.roundId FROM tournament_user INNER JOIN tournament_team
    ON tournament_user.nickname = tournament_team.nickname INNER JOIN api_team ON api_team.id = tournament_team.teamId
    WHERE isOut isNULLAND tournament_team.tournamentId =12
    ORDER BY tournament_team.roundId, tournament_team.nickname
    
    Il problema è questo: praticamente mi viene fuori anche qk nickname di un torneo diverso dal ID = 12 nonostante ho messo la condizione tournament_team.tournamentId =12

    Perchè?


  2. #2
    1. standing ovation per il titolo del thread
    2. sposta il filtro dalla WHERE alla JOIN

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    1. standing ovation per il titolo del thread
    2. sposta il filtro dalla WHERE alla JOIN
    Non mi funziona lo stesso, queste sono le 3 tabelle in questione:
    tournament_team: tournamentId, roundId, userId, nickname,tournamentMatchId, teamID, automatic
    tournament_user: tournamentID, userId, nickname, isOut, dataIscrizione
    api_team: id, name, logo

    Non so se è la strada giusta, ma sono riuscito a stampare il nickname ed il roundId con questa query, manca il name che sta su api_team

    codice:
    SELECT DISTINCT x.nickname, y.roundId FROM (SELECT nickname,tournamentId FROM tournament_user WHERE isOut ISNULL 
    AND tournamentId =$idTorneo) AS x INNER JOIN tournament_team AS y ON x.tournamentId = y.tournamentId ORDER BY y.roundId
    Per stampare anche il name?

  4. #4
    codice:
    SELECT DISTINCT
       x.nickname,
       y.roundId 
    FROM
       (
          SELECT
             nickname,
             tournamentId 
          FROM
             tournament_user 
          WHERE
             isOut ISNULL 
             AND tournamentId =$ idTorneo
       )
       AS x 
       INNER JOIN
          tournament_team AS y 
          ON x.tournamentId = y.tournamentId 
    ORDER BY
       y.roundId
    così è più leggibile, basta poco...

    comunque, non ti avevo suggerito di fare una sub-query...

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    2. sposta il filtro dalla WHERE alla JOIN
    si può fare così
    codice:
    SELECT 
       t1.c1, t2.c2, ...
    FROM
       tabella1 t1
       INNER JOIN tabella2 t2
       ON t1.campoX = t2.campoY AND t2.campoZ='ABC'

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    codice:
    SELECT DISTINCT
       x.nickname,
       y.roundId 
    FROM
       (
          SELECT
             nickname,
             tournamentId 
          FROM
             tournament_user 
          WHERE
             isOut ISNULL 
             AND tournamentId =$ idTorneo
       )
       AS x 
       INNER JOIN
          tournament_team AS y 
          ON x.tournamentId = y.tournamentId 
    ORDER BY
       y.roundId
    così è più leggibile, basta poco...

    comunque, non ti avevo suggerito di fare una sub-query...
    lo so che non me la vevi suggerita..cmq non basta. c'è il name della tabella api_team da stampare. il join con l id della relativa tabella si può fare con team_id di torunament_team

  7. #7
    Quote Originariamente inviata da danielebarisano Visualizza il messaggio
    lo so che non me la vevi suggerita..cmq non basta. c'è il name della tabella api_team da stampare. il join con l id della relativa tabella si può fare con team_id di torunament_team
    non ho capito la richiesta: fai una cosa diversa da quella che ti avevo suggerito, e citi una tabella che non c'è nella nuova query...

    perché non sistemi quella originaria? le indicazioni te le ho date

  8. #8
    Quote Originariamente inviata da optime Visualizza il messaggio
    non ho capito la richiesta: fai una cosa diversa da quella che ti avevo suggerito, e citi una tabella che non c'è nella nuova query...

    perché non sistemi quella originaria? le indicazioni te le ho date
    l avevo scritta sopra,sono 3 tabelle.. quelle 2 tabelle già le avevo sistemato. mi serve anche il join con l altra tabella

  9. #9
    Le riposto:
    tournament_team: tournamentId, roundId, userId, nickname,tournamentMatchId, teamID, automatic
    tournament_user: tournamentID, userId, nickname, isOut, dataIscrizione
    api_team: id, name, logo

  10. #10
    non capisco il "mi serve": la query te la devo scrivere io?

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.