这里有人尝试过使用单独表上的字段筛选表吗?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";
我希望有人能帮我。
谢谢。。。
2条答案
按热度按时间dohp0rv51#
你需要使用内部连接
所以看起来像
有关mysql中联接的更多信息,请查看https://dev.mysql.com/doc/refman/5.7/en/join.html
v9tzhpje2#
这太长了,不能发表评论。它没有直接解决这个问题。
代码中有两个主要错误:
不要在句子中使用逗号
FROM
条款。始终使用适当的显式JOIN
语法。使用参数将值传递到查询中。
你可能需要一个
LEFT JOIN
,但不能用逗号表示。此外:
SELECT DISTINCT
几乎不需要GROUP BY
.这个
GROUP BY
没有所有未聚合的列。你应该写一个干净的查询。这实际上可能会解决您的根本问题。问题可能是由于传入的参数值造成的。