mysql full join error-#1054 - Unknown column 'feesmaster.PAIDAMOUNT' in 'field list'

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

如果我将 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/

相关文章:

mysql left join,这样的query怎么写?

MySQL 将多个表中的行组合成一行

SQL 连接 : selecting the last records in a one-to-many relationship

mysql - 让 SQL 计算整个列的总和 - 我相信在分组时遇到问题

mysql - 如何在 UPDATE 查询中执行三个表 JOIN?

json - 如何从Grails中的JSON列表生成JSON

mysql - 根据其他列从 1 列返回 2 个值的查询

MySQL 在创建表时为 id 分配主键不起作用

mysql - 错误代码: 1005 Can't create table 'custom_db2.durableprofile' (errno: 150)

mysql - mysql中的高级排序