簡體   English   中英

mySQL:從兩個表中獲取數據,並按具有唯一ID的Date分組

[英]mySQL: Get data from two tables with grouping by Date with unique ID

關於如何按日期將表分組在一起,有兩個Stackoverflow問題,我可以使它工作。 我的問題是我只想要屬於唯一客戶端ID IE的記錄,其中client_id = x

我的表是:

TABLE INVOICE
invoice_id
client_id
invoice_number
invoice_amount
invoice_date

TABLE PAYMENT
payment_id
invoice_id
payment_amount
payment_date

目前,我的mySQL語句將讀取整個數據庫。 如何僅為一個客戶獲取所有發票和付款明細? IE WHERE client_id = x

我的mySQL語句是:

SELECT payment_id AS idno, payment_amount AS debit, NULL as credit, payment_date 
AS added_on FROM payment 
UNION ALL 
SELECT invoice_id AS idno, NULL, invoice_total AS credit, invoice_date AS added_on FROM invoice 
WHERE client_id = 24 
ORDER BY added_on 

每個表中的列數都必須相同嗎? 如何確定數據來自哪個表?

SELECT * FROM invoice i
JOIN payment p ON p.invoice_id = i.invoice_id
WHERE i.client_id= 24

我真的不知道UNION ,但是我確實知道您的兩個查詢需要相同數量的列,就像您所做的一樣。

我認為您的sql語句讀取整個表的原因是因為您的兩個表未聯接,為此,您可以像將@ Sid-Hussain提到的那樣,通過將它們加入第一個SELECT 然后,您只需要在第一個SELECT上添加WHERE client_id = 24

暫無
暫無

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

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