我有以下表格-
这是SQLFIDDLE
分类
+-----------+-------------+
| column | type |
+-----------+-------------+
| id | int(11) |
| name | varchar(40) |
| unit | varchar(50) |
| is_active | tinyint(1) |
+-----------+-------------+
和
产品展示
+-------------+---------------+
| column | type |
+-------------+---------------+
| id | int(11) |
| category_id | int(11) |
| name | varchar(40) |
| base_rate | decimal(10,2) |
| is_active | tinyint(1) |
+-------------+---------------+
我想获取类别列表以及活跃产品的数量。如果某个类别的产品均未激活,则应返回0。
有点像下面的表格-
+----+--------+--------------+
| id | name | active_count |
+----+--------+--------------+
| 1 | Steel | 1 |
| 2 | Cement | 2 |
+----+--------+--------------+
我想出了以下查询-
SELECT c.id, c.name, c.unit, COUNT(p.category_id) as active_count
FROM `categories` c
JOIN `products` p
ON c.id = p.category_id
WHERE ( p.is_active = 1 )
GROUP BY p.category_id;
仅当 每个类别 中至少有一个产品处于活动状态时, 以上 查询才有效 。如果没有产品面世,它应该返回active_count
为
0
我怎样才能解决这个问题 ?
这是SQLFIDDLE
使用LEFT JOIN
代替INNER JOIN
:
SELECT c.id, c.name, c.unit, COUNT(p.category_id) as active_count
FROM `categories` c
LEFT JOIN `products` p
ON c.id = p.category_id AND p.is_active = 1
GROUP BY c.id;
将谓词p.is_active = 1
from WHERE
子句移至ON
,这也很重要,以便查询返回表的 所有 记录categories
。
本文向大家介绍在第一个表中实现MySQL触发器以在第二个表中插入记录?,包括了在第一个表中实现MySQL触发器以在第二个表中插入记录?的使用技巧和注意事项,需要的朋友参考一下 为此,语法如下- 让我们首先创建一个表- 这是创建第二个表的查询- 这是插入之前的触发器查询- 让我们将记录插入第一个表- 现在,您可以使用select语句显示第一个表中的所有记录- 这将产生以下输出- 让我们检查第二张表的
我有两个表客户和订单,下面是结构。 表-客户 ID customer_name 表-订单 ID order_id customer_id customers表包含customers记录,orders表包含客户下的订单, orders表中的customer_id链接到customers表的id字段。 现在一个客户可以有零或一个或多个订单,我想要得到客户下的最后一个订单只。 当我运行以下查询(一个简单
问题内容: 我有两个表: 我想从表1中选择所有具有值A和B的表2行的行。这将是行1和3(不是2行,因为它只有A,没有4行是因为只有B)。我可以在没有子查询的情况下执行此操作吗? (注意:我还需要查询表1中的值,因此我不能只查询表2。) 问题答案: 塔达阿!没有子查询。
问题内容: 我正在寻找连接2个表并仅显示明细表的最后一条记录的正确SQL代码。 我有一个带有2个表的数据库, 每个交易都有多个评论,但是我想创建一个显示所有交易的视图,并且仅显示每个交易的最后一条评论(由CommentTime确定)字段 问题答案: 编辑:我没有足够接近地阅读初始问题,也没有注意到视图中需要所有DEALS行。以下是我的修改后的答案:
嗨,伙计们,我正在使用Laravel5.5,我有两个表,用户和服务 用户表 ID 名称 电子邮件 密码 地址 城市 国家 邮政编码 null 提前谢了。热烈问候:阿卜杜拉·沙希德。
我有两张桌子: 表1: 如果两个表都有类似“city”的列,例如 城市 ========== 伦敦 伦敦 伦敦 巴黎 巴黎 纽约 解决方案会是什么样子???