SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE product ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) ); INSERT INTO product (name) VALUES ('Prod1'),('Prod2'); CREATE TABLE prices ( id INT AUTO_INCREMENT PRIMARY KEY, product_id INT, price DECIMAL(9,2), timestamp datetime(6) ); INSERT INTO prices (product_id, price, timestamp) VALUES (1, 5.5, NOW()), (2, 6.2, NOW(6)), (1, 5.2, NOW(6)); SELECT * FROM prices; SELECT product.*, prices.price FROM product JOIN prices ON prices.product_id = product.id JOIN ( SELECT product_id, MAX(timestamp) AS last_price_date FROM prices GROUP BY product_id ) last_prices ON last_prices.product_id = prices.product_id AND last_prices.last_price_date = prices.timestamp ; SELECT * FROM ( SELECT product.*, prices.price , ROW_NUMBER() OVER (PARTITION BY product_id ORDER BY timestamp DESC) rn FROM product JOIN prices ON prices.product_id = product.id ) prices WHERE rn = 1 ;
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear