从两个不同的表中选择行,但使用php和MySQL按日期排序
我有两张桌子 我正试图制作一份类似银行对账单的对账单,以显示所有费用和所有付款。费用和付款需要根据对账单\日期字段按日期顺序显示 我很确定我需要使用“工会”,但我似乎找不到解决办法 我迄今为止的努力是从两个不同的表中选择行,但使用php和MySQL按日期排序,php,mysql,union,Php,Mysql,Union,我有两张桌子 我正试图制作一份类似银行对账单的对账单,以显示所有费用和所有付款。费用和付款需要根据对账单\日期字段按日期顺序显示 我很确定我需要使用“工会”,但我似乎找不到解决办法 我迄今为止的努力是 $statement_sql = "(SELECT * FROM accounts_tenant_charge) UNION (SELECT * FROM accounts_tenant_payment) ORDER BY statement_date"; 提前感谢。您必须进行嵌套查询。首先,根
$statement_sql = "(SELECT * FROM accounts_tenant_charge)
UNION
(SELECT * FROM accounts_tenant_payment)
ORDER BY statement_date";
提前感谢。您必须进行嵌套查询。首先,根据表进行联合查询,并放入内部查询。然后,进行SELECT查询并将其放入外部。不要忘记为外部查询提供别名表 您可以尝试以下代码:
SELECT * FROM
(
(SELECT * FROM accounts_tenant_charge)
UNION
(SELECT * FROM accounts_tenant_payment)
) a
ORDER BY a.statement_date ASC
您必须进行嵌套查询。首先,根据表进行联合查询,并放入内部查询。然后,进行SELECT查询并将其放入外部。不要忘记为外部查询提供别名表 您可以尝试以下代码:
SELECT * FROM
(
(SELECT * FROM accounts_tenant_charge)
UNION
(SELECT * FROM accounts_tenant_payment)
) a
ORDER BY a.statement_date ASC
您的表具有不同的列数,因此无法通过执行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
您的表具有不同的列数,因此无法通过执行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
谢谢你的帮助。下面的问题对我有用
SELECT tenant_charge_date as statement_date, tenant_charge_id as reference, tenant_charge_total_amount as debit, NULL as credit, 'Charge' as type FROM accounts_tenant_charge
UNION ALL
SELECT tenant_payment_date as statement_date, tenant_payment_id as reference, NULL as debit, tenant_payment_amount as credit, 'Payment' as type FROM accounts_tenant_payment
ORDER BY statement_date
谢谢你的帮助。下面的问题对我有用
SELECT tenant_charge_date as statement_date, tenant_charge_id as reference, tenant_charge_total_amount as debit, NULL as credit, 'Charge' as type FROM accounts_tenant_charge
UNION ALL
SELECT tenant_payment_date as statement_date, tenant_payment_id as reference, NULL as debit, tenant_payment_amount as credit, 'Payment' as type FROM accounts_tenant_payment
ORDER BY statement_date
到目前为止,我刚刚添加了我的查询,谢谢。您对此声明有什么错误?没有图片,谢谢。我假设你的桌子看起来像你展示的一样。那么您就不能合并两个列数或列类型不同的结果集。@xNeyte没有错误,只是没有返回行。到目前为止,我刚刚添加了我的查询,谢谢。这个语句有什么错误?没有图片,谢谢。我假设你的桌子看起来像你展示的一样。那么您就不能合并两个列数或列类型不同的结果集。@xNeyte没有错误,只是没有返回行。不幸的是,这段代码不能工作。它没有显示错误,但也没有显示任何行。请确保您的列已选择。如果您有不同的列数,请不要在内部查询中使用select*。不幸的是,此代码无法正常工作。它没有显示错误,但也没有显示任何行。请确保您的列已选择。如果列数不同,请不要在内部查询中使用select*