sql >> Database teknologi >  >> RDS >> Mysql

Forespørg to db ved hjælp af gruppe efter og vis detaljerede oplysninger

TILSLUT dem:

SELECT r.product_id, i.brand, i.name, i.category, DATE_FORMAT( r.inputTime, '%e-%b' ) AS inputTime, r.shopType, r.price AS minimum_price, r.record_id
FROM (  SELECT *
        FROM itemRecord
        WHERE product_id = '1'
        ORDER BY price ASC, inputTime DESC) AS r
INNER JOIN itemInfo As i
ON r.product_id = i.product_id
WHERE i.id = r.product_id
GROUP BY DATE(r.inputTime)
LIMIT 0, 7

Forklaring:

Jeg laver en indre forespørgsel, som gengiver tabelrækkefølgen efter price ASC i stedet for standard, lad os sige id ASC . Når du GROUP BY rækkerne, bruger den som standard kolonnerne fra den første række, som i dette tilfælde er den med den laveste pris.

Din løsning virkede ikke, da den måske også har valgt det første id og ikke den laveste prisrække. Den eneste kolonne, der var korrekt, var MIN( r.price ), men som du har bemærket, påvirkede funktionen ikke de andre kolonner i resultatet.




  1. Kunne ikke indlæse filen eller assembly 'MySql.Data, Version=6.2.2.0

  2. mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows osv... forventer, at parameter 1 er ressource

  3. Eksempel på Oracle Pipelined funktion

  4. Flere ELLER-klausuler i MySQL