mysql完全加入错误 - #1054 - “字段列表”中的未知列'feesmaster.PAIDAMOUNT'

时间:2013-01-15 08:31:07

标签: mysql join

我有查询返回像这样的数据

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。

2 个答案:

答案 0 :(得分:3)

据我所知,MySQL并不支持FULL JOIN所以在这种情况下,FULL这个词意味着你的第一个表feesmaster ALIAS 。因此,没有列feesmaster.PAIDAMOUNT,而是FULL.PAIDAMOUNT。您可以通过UNION LEFT JOIN and RIGHT JOIN

实现FULL JOIN

UPD:同样在你的情况下,FULL JOIN(以及LEFT / RIGHT JOIN' s)对于此查询没有任何意义,因为只有当expensemaster.date时你的WHERE条件为TRUE feesmaster.datetime不是NULL。所以在这种情况下只有INNER JOIN才有效。

答案 1 :(得分:0)

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