簡體   English   中英

從兩個不同的表中選擇行,但使用php和MySQL按日期排序

[英]Select rows from two different tables but order by date using php and MySQL

我有兩個桌子。

表格1

表2

我正在嘗試生成一份對帳單(如銀行對帳單)以顯示所有費用和所有付款。 費用和付款需要根據statement_date字段以日期順序顯示。

我很確定我需要使用“工會”,但似乎找不到解決方案。

到目前為止,我的努力是;

$statement_sql = "(SELECT * FROM accounts_tenant_charge)
UNION
(SELECT * 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

您必須進行嵌套查詢。 首先,您根據表進行聯合查詢,並放入內部查詢中。 然后,您進行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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM