我有一张桌子,里面放着我所有的模板:
模板
模板id
模板名称
模板价格
这些模板可以由注册用户购买,然后插入payments表中:
付款
付款id
模板id
用户id
有没有办法将这两个表连接起来,不仅得到某个用户购买的模板列表,而且得到所有模板?然后找出哪些已经买了?
我使用了这个选择,但是只有用户购买的显示出来。我希望templates中的所有行都是空的,以防user_id不匹配。

SELECT *
FROM templates
LEFT JOIN payments
ON templates.template_id = payments.template_id
WHERE user_id = 2
GROUP BY templates.template_id

最佳答案

使用子选择,这将是

SELECT t.*, p.payment_id
FROM templates t
LEFT JOIN (
    SELECT * FROM payments WHERE user_id=2
) p ON t.template_id = p.template_id

这将向您显示所有模板和付款id(如果该用户有)。

关于mysql - 加入两个表格以显示已购买的物品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12245314/

10-12 17:37