我在编写 MYSQL 查询时几乎不需要帮助。
我想从 3 个表中检索数据,但我只想在 count() 值等于 1 时从第 3 个表中检索数据。
请看下面的查询。
SELECT count(orderdetails.orderId) as total,gadgets.*,orders.* FROM orders
JOIN orderdetails ON orders.orderId = orderdetails.orderId
CASE total WHEN 1 THEN (JOIN gadgets ON gadgets.gadgetId = orders.gadgetId)
GROUP BY orders.orderId
ORDER BY orders.orderId DESC;
mysql 总是给我一个错误,我在互联网上找不到任何解决方案。
最佳答案
只需在 Join 中添加一个简单的条件,它就会起作用(当然你已经做到了 Left Join
)。
SELECT count(orderdetails.orderId) as total,gadgets.*,orders.* FROM orders
JOIN orderdetails ON orders.orderId = orderdetails.orderId
LEFT JOIN gadgets ON gadgets.gadgetId = orders.gadgetId
and total=1 --Simple Logic
GROUP BY orders.orderId
ORDER BY orders.orderId DESC;
关于MySQL , JOIN , 当总数 = 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669835/