这是我的查询:
$query = "SELECT st.AmountSetElec, st.AmountSetGas, st.StartDate,
st.EndDate, st.ElecCharge, st.GasCharge
ec.ElecEnergy,ec.GasEnergy ec.Date ,
c.ElecCharge, c.GasCharge
FROM energytarget st INNER JOIN
useraccount ua
ON st.CustomerID = ua.id
INNER JOIN
energyconsumption ec
ON ec.User = ua.id
WHERE ec.Date >= 'st.StartDate' AND ec.Date <= 'st.EndDate'";
目标: 我的目标是在2017年1月1日至2017年2月1日之间恢复燃气和电力的能源消耗。因此,我有WHERE语句声明应该返回的记录是那些在另一个表中指定的开始日期和结束日期之间的日期。
我知道我在某个地方犯了一个错误,但似乎无法确定它。
非常感谢有关我的查询错误的一些反馈。
答案 0 :(得分:0)
显然,可能存在多种错误 - 错误的表和列引用会浮现在脑海中。但显而易见的是where
中的单引号。尝试删除它们:
WHERE ec.Date >= st.StartDate AND ec.Date <= st.EndDate
将名为Date
的列与'st.StartDate'
等字符串进行比较是没有意义的。
答案 1 :(得分:0)
试试这个
$query = "SELECT st.AmountSetElec, st.AmountSetGas, st.StartDate,
st.EndDate, st.ElecCharge, st.GasCharge
ec.ElecEnergy,ec.GasEnergy, ec.Date ,
ec.ElecCharge, ec.GasCharge
FROM energytarget st INNER JOIN
useraccount ua
ON st.CustomerID = ua.id
INNER JOIN
energyconsumption ec
ON ec.User = ua.id
WHERE ec.Date >= st.StartDate AND ec.Date <= st.EndDate";