我有查询返回这样的数据
DATE( expensemaster.`date` ) SUM( feesmaster.PAIDAMOUNT ) SUM( expensemaster.amount )
2013-01-09 0 7824.4
2013-01-15 200 211
请查看查询,
SELECT DATE( expensemaster.`date` ) ,
SUM( feesmaster.PAIDAMOUNT ) ,
SUM( expensemaster.amount )
FROM
feesmaster
INNER JOIN expensemaster
ON DATE( feesmaster.DATETIME ) = DATE( expensemaster.date )
WHERE
DATE( expensemaster.`date` ) BETWEEN '2013-01-09' AND '2013-01-15'
AND DATE( feesmaster.`datetime` ) BETWEEN '2013-01-09' AND '2013-01-15'
GROUP BY
DATE( feesmaster.`datetime` ),
DATE( expensemaster.`date` )
如果我将 inner 替换为 full,这样当其中一个表中有匹配时我可以获得返回行,但我收到错误
#1054 - “字段列表”中的未知列“feesmaster.PAIDAMOUNT”
我正在使用 phpmyadmin。
最佳答案
据我所知,MySQL 不支持 FULL JOIN
,所以 FULL
这个词在这种情况下意味着第一个表的 ALIAS 费用主管
。所以没有 feesmaster.PAIDAMOUNT
列,而是 FULL.PAIDAMOUNT
。您可以通过 UNION LEFT JOIN and RIGHT JOIN 实现 FULL JOIN
UPD:同样在您的情况下,FULL JOIN(以及 LEFT/RIGHT JOIN 也是)对此查询没有任何意义,因为只有 expensemaster.date
时您的 WHERE 条件才为 TRUE和 feesmaster.datetime
不是 NULL
。所以只有 INNER JOIN
在这种情况下有效。
关于mysql full join error-#1054 - Unknown column 'feesmaster.PAIDAMOUNT' in 'field list',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14333751/