Dizin sayfasında en çok satan 4 öğenin resmini görüntülemek istiyorum ancak kullanıyorum sql çalışmıyor. Bence sözdizimi doğru ama sayfada hiçbir şey göstermiyor. order_items tablosu ve ürün tabloları ürün tablosuna sahibim.Başka bir masadan en çok satan öğeleri ve ilişkili resmi görüntüleme
ürünler Tablo
CREATE TABLE IF NOT EXISTS `products` (
`id` int(11) NOT NULL,
`date` datetime NOT NULL,
`category` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`image` varchar(100) CHARACTER SET utf8 NOT NULL,
`description` text NOT NULL,
`author` varchar(100) NOT NULL,
`price` decimal(5,2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;
ORDER_ITEMS Tablo
CREATE TABLE IF NOT EXISTS `order_items` (
`id` int(11) NOT NULL,
`order` int(11) NOT NULL,
`product` int(11) NOT NULL,
`price` decimal(8,2) NOT NULL,
`qty` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ;
NOT: ORDER_ITEMS tablosundaki alan ürünün, ürünün kimliğine karşılık gelir.
Son olarak, kullanıyorum ancak hiçbir şey göstermiyor sql deyim budur.
public function bestSellingItems(){
$sql = "SELECT * FROM products AS p
INNER JOIN order_items AS od ON p.id = od.id
GROUP BY p.id, SELECT SUM(od.qty) AS total
ORDER BY SUM(od.qty) DESC limit 4";
}
Herhangi bir yardım için minnettar olurum.
Teşekkür olmalıdır "p.id ÜZERİNE od OLARAK INNER JOIN ORDER_ITEMS = od.id", @sagi !! Doğru çalışıyor. – raul