[英]MYSQL JOIN WHERE ISSUES - need some kind of if condition
好吧,这很难解释,但我会尽力而为
事情是我有4个表,每个表都有一个与彼此相关的特定列。 1个具有用户(agent_users)的表,1个具有工作时间(agent_pers)的1个,具有售出的项目(agent_stat)的1个,具有项目(agent_pro)的1个用户和项目表与当前问题无关,但可以使您更好地理解为什么我的查询中包含某些表格,我决定仍然提及它们=)问题是,我使用2页将数据插入该时间表内的工作时间和售出商品,然后我有了第三页来汇总所有当月,查询如下:
SELECT *, SUM(sv_p_kom),SUM(sv_p_gick),SUM(sv_p_lunch) FROM ((
agent_users
LEFT JOIN agent_pers ON agent_users.sv_aid = agent_pers.sv_p_uid)
LEFT JOIN
agent_stat ON agent_pers.sv_p_uid = agent_stat.sv_s_uid)
LEFT JOIN
agent_pro ON agent_pers.sv_p_pid=agent_pro.p_id
WHERE MONTH(agent_pers.sv_p_datum) =7 GROUP BY sv_aname
所以现在的问题是,我不希望以前几个月的已售商品包含在收到的数据中,我知道我可以通过简单地添加WHERE部分MONTH(agent_stat.sv_s_datum)= 7来解决这个问题,但是如果没有售出任何商品该月没有任何数据,不会显示时间或其他任何信息。 非常感谢我如何解决这个问题。 如果有什么不太清楚的地方,请不要犹豫,请尽我所能回答。 毕竟我的英语不是最好的:P认为微风
您的数据是否可以在WHERE子句中添加(MONTH(agent_stat.sv_s_datum)= 7 OR agent_stat.sv_s_datum IS NULL)?
足够公平:)-将条件作为第二个条件放在您的JOIN子句中。 开启(agent_pers.sv_p_uid = agent_stat.sv_s_uid AND agent_stat.sv_s_datum = 7)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.