使用php的3个表之间的关系

时间:2017-10-25 13:03:24

标签: mysql

我需要在3个表之间建立关系。我正在创建一个会员区,我需要向登录用户显示他购买的课程。这三个表格为:usersproductspurchases

Users columns: id, name, email, password

Products columns: id, code, name, image, link

Purchases columns: id, code, email, value, date

我通过界面注册产品,我通过webhook购买。也就是说,我注册的产品与我从webhook收到的代码相同

我需要知道登录用户是否购买了我系统上的课程并将其显示给他。

1 个答案:

答案 0 :(得分:0)

所以你是在他们的唯一键和/或索引之间的表之间连接?

我假设:

  • ID是每个表的主键;然而,您正在使用唯一索引来关联它们。
  • Useres.email是一个唯一的密钥。
  • Product.code是一个唯一的密钥。
  • 购买是一个联结表,显示用户(电子邮件)购买了哪些产品(代码)
  • 您在查询后会显示产品名称,图片和链接以及登录用户的用户名和电子邮件。
  • 购买意味着完全销售;而不仅仅是购物车/心愿单。通常我们在处理订购系统时会看到订单,订单明细,发货,发票,付款等。

SELECT PR.Name as ProductName, PR.Image, PR.Link, U.Name as userName U.Email 
FROM users U
INNER JOIN Purchases PU
 on PU.eMail = U.eMail
INNER JOIN Products PR
 on PR.Code = PU.Code
WHERE U.ID = {logged in user ID}