以下子查询返回多于1行
SELECT date,
order_no,
(SELECT product_name
FROM product
WHERE product_id IN (SELECT product_id
FROM order_det)),
qty
FROM order_det
WHERE order_no IN (SELECT order_no
FROM order_id
WHERE cust_id = (SELECT log_id
FROM orderpanel_log
ORDER BY orderpanel_log.date DESC
LIMIT 1))
我该如何预防?
您的子查询
(SELECT product_name
FROM product
WHERE product_id IN (SELECT product_id
FROM order_det ))
可能会返回更多行,因此您应该减少重新调整的行数,例如:
(SELECT product_name
FROM product
WHERE product_id = (SELECT product_id
FROM order_det
limit 1 ))
。
SELECT date,
order_no,
(SELECT product_name
FROM product
WHERE product_id = (SELECT product_id
FROM order_det
limit 1 ))
qty
FROM order_det
WHERE order_no IN (SELECT order_no
FROM order_id
WHERE cust_id = (SELECT log_id
FROM orderpanel_log
ORDER BY orderpanel_log.date DESC
LIMIT 1))
但我建议您尝试使用内部联接重构查询,并减少或避免使用子查询
SELECT od.date,
od.order_no,
p.product_name,
od.qty
FROM order_det od
INNER JOIN product p on p.product_id = od.product_id
INNER JOIN order_id oi on o1.order_no = od.order_no
WHERE cust_id = (
SELECT log_id
FROM orderpanel_log
ORDER BY orderpanel_log.date DESC
LIMIT 1
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句