Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie o dwa db za pomocą grupowania według i wyświetl szczegółowe informacje

DOŁĄCZ do nich:

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

Wyjaśnienie:

Wykonuję wewnętrzne zapytanie, które renderuje kolejność tabel według price ASC zamiast domyślnego, powiedzmy id ASC . Kiedy GROUP BY wierszy, domyślnie używa kolumn z pierwszego wiersza, czyli w tym przypadku z najniższą ceną.

Twoje rozwiązanie nie zadziałało, ponieważ równie dobrze mogło wybrać pierwszy identyfikator, a nie wiersz z najniższą ceną. Jedyną poprawną kolumną była MIN( r.price ), ale jak zauważyłeś ta funkcja nie wpływała na inne kolumny w wyniku.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. załaduj dane lokalny plik w pliku BŁĄD 2 nie znaleziono pliku

  2. Jak wyświetlać albumy obrazów w postach? [przy użyciu tylko PHP i MYSQL]

  3. Wyświetlaj jeden wiersz na wyszukiwane hasło, zastąp domyślny, jeśli nie znaleziono

  4. Wyciek pamięci Java MySQL JDBC

  5. SQL:Pobierz produkty z kategorii, ale muszą również znajdować się w innym zestawie kategorii