0

我想做一个LEFT JOIN然后按列对我的显示进行排序,并且仅在该列大于 0rank时才显示项目qty

SELECT 
*
FROM `product`
LEFT JOIN `stock`
ON `product`.`product_id`=`stock`.`pid`
AND `qty` > 1
ORDER BY `product`.`rank` ASC

产品表

product_id
name
rank
price

库存表

pid
price_sale
qty

Product Table

12, Pen, 2, 53.00
13, Pen, 1, 58.00
14, Pen, 3, 25.00

Stock Table

12, 10.00, 5 
13, 18.00, 15

我的结果没有出现。

它应该显示:

12, Pen, 2, 53.00, 12, 10.00, 5
13, Pen, 1, 58.00, 13, 18.00, 15
4

2 回答 2

3

使用下面的查询

SELECT * FROM `product`
LEFT JOIN `stock`
ON `product`.`product_id`=`stock`.`pid`
WHERE `stock`.`qty` > 0
ORDER BY `product`.`rank` ASC
于 2013-07-01T13:03:03.350 回答
1

AND 应该是这样的 WHERE :

SELECT *
FROM `product`
LEFT JOIN `stock` ON `product`.`product_id`=`stock`.`pid`
WHERE `qty` > 1
ORDER BY `product`.`rank` ASC
于 2013-07-01T13:01:03.353 回答