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

    Select Distinct con Altri Select

    Salve ragazzi,
    oltre a voler fare un SELECT di più elementi, avendone uno con la dicitura DISTINCT, la cosa che più mi interessa è ordinarli secondo un parametro che non è quello del DISTINCT..
    Vi faccio un esempio così mi spiego meglio..
    Vorrei fare questo:
    codice:
    SELECT DISTINCT idVendita FROM vendite WHERE idPuntoV = $idPuntoV ORDER BY data DESC
    Ma il MySQL non me lo permette

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Luigi636 Visualizza il messaggio
    ....... Ma il MySQL non me lo permette ........
    a non permetterlo non è MySql, bensi la logica del DISTINCT


    - Immagina che la tua query non abbia il WHERE c'è è solo di peso per i nostri scopi
    - poi immagina anche di togliere ORDER BY
    quindi diventa:

    SELECT DISTINCT idVendita FROM vendite

    hai una tabella con 200 record
    in cui pero ci sono solamente 10 idVendita DISTINTI
    e per ogni idVendita DISTINTO ci sono per esempio 20 date diverse fra di loro

    con la query sopra estrai solamente 10 record (che sono i 10 idVendita)

    in ogniUno dei record estratti non c'è una data (perche in effetti ce ne dovrebbero essere 20 .......)
    quindi non puoi ordinare per data con nessun DataBase

    _______________________________________________

    Poi un'altra considerazione piu terraterra
    Tu fai .... SELECT DISTINCT idVendita FROM vendite ....
    ma idVendita dal nome sembrerebbe la Key della tabella,
    quindi a cosa ti serve il DISTINCT ????
    La Key per sua definizione contiene solamente valori diversi (Quindi DISTINTI)

    .
    Ultima modifica di nman; 23-06-2017 a 20:19

  3. #3
    si, perchè le date sono univoche insieme agli id.. Infatti forse dovrei estrarmi prima delle distinct data, così posso ordinarle e poi andarmi a prendere gli id..
    cmnq id Vendita non è la primary key

  4. #4
    spiega cosa vuoi fare, con un esempio

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da Luigi636 Visualizza il messaggio
    si, perchè le date sono univoche insieme agli id.. Infatti forse dovrei estrarmi prima delle distinct data, così posso ordinarle e poi andarmi a prendere gli id..
    cmnq id Vendita non è la primary key
    Non si capisce bene quello che intendi. Un id , di per sè, é univoco. Altrimenti non si chiama id.
    Quindi ,se un id è univoco, ogni altro dato che aggiungi ad un id è..... univoco.

    Nel caso in cui id fosse univoco da solo => select id from tabella order by data.

    Nel caso in cui id+data fossero ,univoco/i => select id, min(data) as datamin from tabella group by id order by datamin, id o order by min(data), id a secondo del database che usi.

    In ogni caso se usi DISTINCT nell'order by ci vuole un campo presente nella clausola select.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non si capisce bene quello che intendi. Un id , di per sè, é univoco. Altrimenti non si chiama id.
    Quindi ,se un id è univoco, ogni altro dato che aggiungi ad un id è..... univoco.

    Nel caso in cui id fosse univoco da solo => select id from tabella order by data.

    Nel caso in cui id+data fossero ,univoco/i => select id, min(data) as datamin from tabella group by id order by datamin, id o order by min(data), id a secondo del database che usi.

    In ogni caso se usi DISTINCT nell'order by ci vuole un campo presente nella clausola select.
    Ripeto, gli id non sono univochi e neanche le date..
    Ciò che voglio fare è includere il data nel SELECT, affianco a DISTINCT, in modo da poter fare un ORDER in base alla ​data

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    allora ...

    select distinct id, data from tabella order by id, data o data, id
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8

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.