1

我有查询返回这样的数据

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` )

如果我将内部替换为完整,那么当其中一个表中有匹配项时我可以获得返回行但我收到错误

#1054 -“字段列表”中的未知列“feesmaster.PAIDAMOUNT”

我正在使用 phpmyadmin。

4

2 回答 2

3

据我所知 MySQL 不支持FULL JOIN,所以FULL在这种情况下这个词意味着你的第一个表的别名feesmaster。所以没有列feesmaster.PAIDAMOUNT但是FULL.PAIDAMOUNT. 您可以通过UNION LEFT JOIN 和 RIGHT JOIN实现 FULL JOIN

UPD:在您的情况下,FULL JOIN(以及 LEFT/RIGHT JOIN 也)对此查询没有任何意义,只要您的 WHERE 条件 TRUE only if expensemaster.dateand feesmaster.datetimeare not NULL。所以只INNER JOIN在这种情况下有效。

于 2013-01-15T08:44:54.250 回答
0

您的错误是未知列,这基本上意味着feesmaster表中没有PAIDAMOUNT列(可能是错字?)。

于 2013-01-15T08:41:47.483 回答