Php mySQL:从具有唯一ID的按日期分组的两个表中获取数据

Php mySQL:从具有唯一ID的按日期分组的两个表中获取数据,php,mysql,Php,Mysql,关于如何按日期将表分组,有两个Stackoverflow问题,我可以让它工作。我的问题是我只想要属于唯一客户端ID的记录,即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语句读取了整个数据库。如

关于如何按日期将表分组,有两个Stackoverflow问题,我可以让它工作。我的问题是我只想要属于唯一客户端ID的记录,即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语句读取了整个数据库。如何仅为一个客户获取所有发票和付款详细信息?即,其中客户_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
我认为您的sql语句读取整个表的原因是因为您的两个表没有连接,要做到这一点,您可以像前面提到的@Sid Hussain那样,在第一个
SELECT
中连接它们。然后只需在第一个
选择