SQL如何只显示已购买的产品

时间:2014-11-01 04:11:53

标签: mysql sql

我有4张桌子,但不记得如何进行此查询。

4个表格是产品,发票,产品发票和会员

我想显示用户购买的所有产品。

以下是我的数据。

products
productID, title, runTime, imageLarge, classification
1, noah, 128 minutes, noahLarge.jpg, M
2, left behind, 105 minutes, leftBehindLarge.jpg, MA 15+
3, green lantern, 133 minutes, greenLantern.jpg, M

invoice
invoiceID, memberID, purchaseDate
1,11,1/10/2014
2,13,15/10/2014


productsinvoice
invoiceID, productID
1, 2
1, 3
2, 1
2, 2'

members
memberID, username, pass, first name, last name
11, bob, fwofefef, bob, marley
13, prius, f334ff43f, eski, martey

当用户访问帐户页面时,我想显示他们购买的所有产品。如果有人需要,我可以从localhost导出sql文件。

$sql = "select P.* 
from products as P 
inner join productsinvoice as PI using (productID)
inner join invoice as I using (invoiceID) 
where I.memberID = ".$_SESSION['user'].">";

回来你的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第1行

$ _ SESSION [' user']是memberID

1 个答案:

答案 0 :(得分:0)

select P.*
from   products as P
       inner join productsinvoice as PI using (productID)
       inner join invoice as I using (invoiceID)
where  I.memberID = <memberID which may be stored in session when member logs in>

我没有看到加入会员表的理由,因为memberID通常只是你需要的,这是invoices表的一部分。