mysql - 如何通过在mysql中过滤另一个表来列出表中的所有项目

标签 mysql vb.net join

我有 2 张 table

表 1 = Visitacli

codcli-char(3)
nomecli-varchar(100)
------------------------
001 - Joao
002 - Maria
003 - Joana

表 2 = 访问

codcli-char(3)
datavisita-char(8)
quantidade-integer
-------------------------
001 - 20170810 - 2
001 - 20170811 - 3
001 - 20170815 - 5
002 - 20170812 - 1
002 - 20170816 - 9

我的选择

    SELECT
    visitacli.codcli,
    visitacli.nomecli,
    Sum(visitaate.quantidade) AS totalvisitas
FROM
    visitacli
LEFT JOIN visitaate ON visitacli.codcli = visitaate.codcli
WHERE
    visitaate.datavisita >= '20170801'
AND visitaate.datavisita <= '20170817'
GROUP BY
    visitacli.codcli,
    visitacli.nomecli

结果:

001 - Joao - 10
002 - Maria - 10

但是...没有列出003 - Joana。 如何将表一的所有项目与表二的总计列出?

最佳答案

您必须移动 WHERE 子句的谓词:

WHERE
    visitaate.datavisita >= '20170801'
AND visitaate.datavisita <= '20170817'

LEFT JOIN visitaate 
   ON visitacli.codcli = visitaate.codcli
      AND visitaate.datavisita >= '20170801'
      AND visitaate.datavisita <= '20170817'

关于mysql - 如何通过在mysql中过滤另一个表来列出表中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736354/

相关文章:

java - 单个查询能否给出 Spring Boot 中条件结果的结果?

Magento Observer 添加订单网格列 - 不明确的问题

javascript - 如何在 Bootstrap 模式中从 MySQL 打开图像?

html - 如何一次插入插入两个序列号

mysql - 将 Lead/Lag 函数转换为 MySQL

c# - 配置 mercurial .hgingore 以忽略目录中除 'repositories.config' 之外的所有文件和文件夹

vb.net - 仅从组合框中选择列表项

mysql - 在子查询中使用父字段

windows - VB.NET 上的唯一硬件 ID

php - 具有左连接并防止空结果的 sql 查询(数据表)