我有两张桌子;
我试图发表声明(如银行对帐单)以显示所有费用和所有付款。费用和付款需要根据statement_date字段以日期顺序显示。
我很确定我需要使用'工会'但我似乎无法找到解决方案。
到目前为止我的努力是;
$statement_sql = "(SELECT * FROM accounts_tenant_charge)
UNION
(SELECT * FROM accounts_tenant_payment)
ORDER BY statement_date";
提前致谢。
答案 0 :(得分:3)
感谢您的帮助。以下查询对我有用;
$count = $this->Article->find(
'count',
array(
'conditions' => array(
'Live >=' => 'CURDATE()'
)
)
);
答案 1 :(得分:2)
您必须进行嵌套查询。首先,根据表进行联合查询并放入内部查询。然后,您进行SELECT查询并输入外部。不要忘记为外部查询提供别名表。
您可以尝试以下代码:
SELECT * FROM
(
(SELECT * FROM accounts_tenant_charge)
UNION
(SELECT * FROM accounts_tenant_payment)
) a
ORDER BY a.statement_date ASC
答案 2 :(得分:0)
您的表格列数不同,因此您不能通过select *
立即联合它们。您必须从两个表中选择相同数量的列。像:
select
tenant_charge_id as `id`,
tenant_charge_date as `date`,
tenant_charge_total_amonunt as `amount`
union
select
tenant_payment_id,
tenant_payment_date,
tenant_payment_amount
order by
`date` asc