筛选2个mysql表

py49o6xq  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(252)

这里有人尝试过使用单独表上的字段筛选表吗?e、 g.表1有login、group、name字段,表2有login、volume、profit、open\u time、close\u time字段。
因为表2没有组,所以我想按组过滤登录名,这样查询的结果就已经被过滤了。我试过下面的语句,没有错误,但没有返回结果。

"SELECT DISTINCT a.LOGIN, a.GROUP, b.LOGIN, b.SYMBOL,
       SUM(b.VOLUME) NetVolume, SUM(b.PROFIT) NetProfit, b.CLOSE_TIME 
 FROM TABLE_1 a, TABLE_2 b
 WHERE b.CLOSE_TIME BETWEEN '"+dateTimePicker1.Value.ToString("yyyy-MM-dd")+"' AND '"+ dateTimePicker1.Value.ToString("yyyy-MM-dd")+"' AND 
       a.GROUP NOT IN('group_a','group_b') AND
       a.LOGIN = b.LOGIN
   ORDER BY NetVolume";

我希望有人能帮我。
谢谢。。。

dohp0rv5

dohp0rv51#

你需要使用内部连接
所以看起来像

SELECT DISTINCT a.LOGIN, a.GROUP, b.LOGIN, b.SYMBOL,
        SUM(b.VOLUME) NetVolume, SUM(b.PROFIT) NetProfit, b.CLOSE_TIME 
    FROM a INNER JOIN b ON a.LOGIN = b.LOGIN 
    WHERE b.CLOSE_TIME BETWEEN '"+dateTimePicker1.Value.ToString("yyyy-MM-dd")+"' AND '"+ dateTimePicker1.Value.ToString("yyyy-MM-dd")+"' AND a.GROUP NOT IN('group_a','group_b') AND
   ORDER BY NetVolume";

有关mysql中联接的更多信息,请查看https://dev.mysql.com/doc/refman/5.7/en/join.html

v9tzhpje

v9tzhpje2#

这太长了,不能发表评论。它没有直接解决这个问题。
代码中有两个主要错误:
不要在句子中使用逗号 FROM 条款。始终使用适当的显式 JOIN 语法。
使用参数将值传递到查询中。
你可能需要一个 LEFT JOIN ,但不能用逗号表示。
此外: SELECT DISTINCT 几乎不需要 GROUP BY .
这个 GROUP BY 没有所有未聚合的列。
你应该写一个干净的查询。这实际上可能会解决您的根本问题。问题可能是由于传入的参数值造成的。

相关问题