以下查询会生成包含每个订单的1个产品的集合,即使特定订单包含多个产品也是如此。
select orders. *, products. *
from `orders`
inner join `products`
where orders.customer_id = " . $customer_id . "
and orders.order_processed > 0
and products.product_id in (orders.products)
(orders.products是一个像69,74,35,21这样的字符串)。
我尝试过多次重写,但未能获得理想的结果。 谁能指出我正确的方向?感谢您的支持。
答案 0 :(得分:0)
您在sql查询中使用过IN运算符。它将给定的表达式与“结果集”中的任何匹配值进行匹配。尝试使用子查询来获取(orders.products)中products.product_id的结果集
答案 1 :(得分:0)
你对IN()的使用可能无法实现你所希望的。您的查询可能看起来更像(猜测)
select orders. *, products. *
from `orders`
inner join `products` ON orders.product_ID = products.id
WHERE orders.customer_id = " . $customer_id . "
and orders.order_processed > 0