我想加入三个表(“用户”,“预订”,“ 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)
您的原始代码是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