我从来没有做过这样的PHP / MYSQL技巧来加入多表。请具有该领域经验的人员帮助: TICKETS 表中的字段:
ID TICKETID CUSTOMER 234 29 9798797 235 76 7887878
表 RECEPTS中的 字段:
ID DATENEW TOTAL 234 2012-12-03 22.57 235 2012-12-03 33.98
表 PAYMENTS中的 字段:
RECEIPT PAYMENT 234 cash 235 debt
表 CUSTOMERS中的 字段:
ID NAME 9798797 John 7887878 Helen
表之间的关系很容易理解: TICKETS.CUSTOMER=CUSTOMERS.ID; PAYMENTS.RECEIPT=RECEIPTS.ID=TICKETS.ID
TICKETS.CUSTOMER=CUSTOMERS.ID;
PAYMENTS.RECEIPT=RECEIPTS.ID=TICKETS.ID
我希望达到的最终结果:
TICKETID DATENEW NAME PAYMENT TOTAL 29 2012-12-03 John cash 22.57 76 2012-12-03 Helen debt 33.98
我试图做这样的事情,但在某个地方出错:
$qry = mysql_query("Select TICKETS.TICKETID, RECEIPTS.DATENEW, PAYMENTS.TOTAL, CUSTOMERS.NAME, PAYMENTS.PAYMENT FROM PEOPLE, RECEIPTS INNER JOIN TICKETS ON RECEIPTS.ID = TICKETS.ID INNER JOIN CUSTOMERS ON TICKETS.CUSTOMER = CUSTOMERS.ID ORDER BY RECEIPTS.DATENEW");
您应该可以使用以下方法获得结果:
select t.ticketid, date_format(r.datenew, '%Y-%m-%d') datenew, c.name, p.payment, r.total from tickets t left join RECEPTS r on t.id = r.id left join CUSTOMERS c on t.customer = c.id left join payments p on t.id = p.RECEIPT and r.id = p.RECEIPT
参见带有演示的SQL Fiddle
结果:
| TICKETID | DATENEW | NAME | PAYMENT | TOTAL | --------------------------------------------------- | 29 | 2012-12-03 | John | cash | 22.57 | | 76 | 2012-12-03 | Helen | debt | 33.98 |