Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявете два db, като използвате група по и покажете подробна информация

ПРИСЪЕДИНЕТЕ СЕ към тях:

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

Обяснение:

Правя вътрешна заявка, която изобразява реда на таблицата по price ASC вместо по подразбиране, нека кажем id ASC . Когато GROUP BY редовете, по подразбиране използва колоните от първия ред, който в този случай е с най-ниска цена.

Вашето решение не работи, тъй като може също да е избрал първия идентификатор, а не най-ниската цена. Единствената колона, която беше правилна, беше MIN(r.price), но както забелязахте, тази функция не повлия на другите колони в резултата.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранявайте php datetime в базата данни на mysql

  2. Преобразуване на съпоставянето на колони в таблица/база данни по подразбиране

  3. как да получите размер на таблицата на mysql в GB

  4. Какви са разликите между SQL и MySQL

  5. SQL:Помогнете ми да оптимизирам моя SQL