sql >> Databasteknik >  >> RDS >> Mysql

Fråga två db med hjälp av grupp efter och visa detaljerad information

GÅ MED 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

Förklaring:

Jag gör en inre fråga som återger tabellordningen efter price ASC istället för standard, låt oss säga id ASC . När du GROUP BY raderna använder den kolumnerna från den första raden som standard, vilket i det här fallet är den med lägst pris.

Din lösning fungerade inte eftersom den också kan ha valt det första id:t och inte den lägsta prisraden. Den enda kolumnen som var korrekt var MIN( r.price ), men som du märkte påverkade den funktionen inte de andra kolumnerna i resultatet.




  1. Varför min pessimistiska låsning av JPA med Oracle inte fungerar

  2. Hur fixar du ett fel i MySQL Felaktig nyckelfil när du inte kan reparera tabellen?

  3. Få värde baserat på max för en annan kolumn grupperad efter en annan kolumn

  4. Konvertera fbk (firebird) fil till MySql