1

I have query which returns the data like this

DATE( expensemaster.`date` )    SUM( feesmaster.PAIDAMOUNT )    SUM( expensemaster.amount )
2013-01-09                         0                             7824.4
2013-01-15                         200                            211

please view the query,

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

If i replace inner to full so i can get Return rows when there is a match in one of the tables but i am getting error

#1054 - Unknown column 'feesmaster.PAIDAMOUNT' in 'field list'

I am using phpmyadmin.

Abhiram
  • 65
  • 1
  • 10

2 Answers2

3

As I know MySQL doesn't support FULL JOIN so the word FULL in this case means an ALIAS for your first table feesmaster. So there is no column feesmaster.PAIDAMOUNT but FULL.PAIDAMOUNT. You can implement FULL JOIN by UNION LEFT JOIN and RIGHT JOIN

UPD: Also in your case FULL JOIN (and LEFT/RIGHT JOIN's also) has no sense for this query as soon your WHERE conditions TRUE only if expensemaster.date and feesmaster.datetime aren't NULL. So only INNER JOIN works in this case.

valex
  • 23,966
  • 7
  • 43
  • 60
0

Your error is an unknown column, which basically means that in feesmaster table there is no PAIDAMOUNT column (maybe a typo?).

Cynical
  • 9,328
  • 1
  • 15
  • 30