MySQL , JOIN , 当总数 = 1

标签 mysql sql join

我在编写 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/

相关文章:

mysql - 通过 MySQL 计算字符串中的出现次数

mysql - 查找部门内员工的平均工资偏差

php - 用于家庭账单分割数据库的 SQL

mysql - 将所有相似的文本分组到不同的组中

PHP mySQL - 替换字符串中的一些字符串

php - 通过 php 和 JSON 将 android 应用程序连接到 MySQL

SQL Server 加入临时表需要很长时间

mysql - 如何将结果集行显示为列

Mysql - 将两行与值对合并

mysql - 如何加入 MySQL 查询