MySQL与三个表一起无法使用Mysql php

问题描述 投票:0回答:1

我想加入三个表(“用户”,“预订”,“ paymentHistory”),但我得到0条记录,这是我的表格“用户”

id          Name
1           abc
2           xyz
3           uby

这是我的桌子“预订”

id      userId      status          createdOn   
1       2           pending         2020-06-09 10:22:34
2       2           complete        2020-06-08 11:45:23
3       3           pending         2020-06-09 10:12:56

这是我的表“ paymentHistory”

id      userId      paymentType     paymentTime
1       2           cash            2020-06-09 12:52:34
2       2           cash            2020-06-08 11:43:54

现在我想从其中的userId ='2'(动态ID)的“ booking”和“ paymentHistory”表中获取所有记录我想从升序中获取记录(根据datetime),我尝试使用以下查询,但未显示任何内容(0条记录),我错了吗?

SELECT u.id as userId,u.name,b.userId as bookingId,b.status,ph.userId as paymentHistoryId,ph.paymentType
FROM users u
JOIN booking b
ON b.userId-u.id
JOIN paymentHistory ph
ON ph.userId=u.id
WHERE u.id='2' 

显示空记录,如何根据日期时间获取记录(createdOn,paymentTime)

php mysql sql
1个回答
0
投票

您的原始代码是ON b.userId-u.id。我不确定您是不是在这篇文章中甚至在您的代码中是否有错字,但是正确的代码应如下所示,使用=子句中的ON

并且您可以使用ORDER BY对过滤器结果进行排序。

SELECT u.id as userId,u.name,b.userId as bookingId,b.status,ph.userId as paymentHistoryId,ph.paymentType
FROM users u
JOIN booking b
    ON b.userId = u.id
JOIN paymentHistory ph
    ON ph.userId = u.id
WHERE u.id=2
ORDER BY b.createdOn
© www.soinside.com 2019 - 2024. All rights reserved.