这是我的问题,我有2个表:产品和出价
在产品表中,我有产品名称,ID,价格(buyitnow)和拍卖类型。
现在,在我的出价中,我有bid_id,bid_item,bid_amount。我试图将新上市的产品展示为拍卖或现在购买。我试图显示出价和现在买入的价格。
这是我正在使用的SQL代码:
SELECT *
FROM products,
bids
WHERE enddate > Now()
AND products.id = bids.bids_item
ORDER BY date DESC
LIMIT 16
现在该声明的问题是它只显示出价表中有一行的拍卖列表,而且并不总是一个项目有该行,因为没有出价或者它现在买它。我正在使用一个简单的foreach语句。
我正在尝试使用变量:
$product->bids_amount; //auction
$product->price; //bin
如何解决此问题,请点击此处:
答案 0 :(得分:1)
当然。您希望使用on
子句。实际上,您不应该在from
子句中使用逗号。 。 。一个简单的规则:
SELECT *
FROM products JOIN
bids
ON products.id = bids.bids_item AND enddate > Now()
ORDER BY date DESC
LIMIT 16
然后,如果您想保留所有产品,请使用LEFT JOIN
。这会将所有记录保存在第一个表中:
SELECT *
FROM products LEFT JOIN
bids
ON products.id = bids.bids_item AND enddate > Now()
ORDER BY date DESC
LIMIT 16