我需要加入两个表,我的表:
表1
user ip amount time
user1 10.12.130.14 5000 1409007653
user2 10.12.130.13 2000 1309007653
user3 10.12.130.12 4000 1209007653
user4 10.12.130.11 6000 1109007653
...
表2
ref ip time
ref1 10.12.130.14 1209007653
ref1 10.12.130.13 1109007653
ref1 10.12.130.12 1309007653
ref2 10.12.130.11 1409007653
...
我需要结果:( foreach all ref)
ref allcount todaycont allsum todaysum
ref1 3 1 11000 5000
ref2 1 0 6000 0
...
我写的代码但不完整:
$query = mysql_query("SELECT table2.ref, table1.user
FROM
table2 INNER JOIN table1
ON
table2.ip = table1.ip
") or die(mysql_error());
答案 0 :(得分:0)
未经测试,但根据我对您的问题的解释,这应该有效:
SELECT
A.ref,
COUNT(*) allcount,
CASE
WHEN DATE_FORMAT(A.time,'%m-%y') = DATE_FORMAT(NOW(),'%m-%y')
THEN COUNT(*)
END todaycount,
SUM(A.amount),
CASE
WHEN DATE_FORMAT(A.time,'%m-%y') = DATE_FORMAT(NOW(),'%m-%y')
THEN SUM(A.amount)
END todaysum
FROM table1 A
JOIN table2 B
ON A.ip = B.ip
GROUP BY
B.ref
我不确定的最大部分是案例陈述中的日期/时间段。这主要是由于我不熟悉您在表中使用的日期/时间格式,如果针对您的数据类型进行了适当调整,它们应该可以正常工作。