我遇到了一些问题,无法为我的问题找到具体的解决方案。 我有一个名为“ Champions”的数据库表。它包含冠军(带有他们的名字和类型)。我有一个名为“ User”的表,其中包含用户数据(名称,密码,电子邮件等)。我有一张名为“个人”的表格。它保存有关哪个用户购买了哪个冠军的数据。为此,“ Owns”拥有外键UID和CID。
现在我要在我的网站上显示所有冠军和他们的图像。解锁的冠军图像将显示为彩色。锁定将以黑白显示。
用户购买冠军后,我会将数据插入“本人”。这意味着如果我购买了10个冠军中的3个冠军,该如何查询表格以将所有7个锁定的冠军显示为“黑白”和所有3个未锁定的冠军以彩色显示?
提前谢谢!
答案 0 :(得分:0)
在这种情况下,左联接应该起作用。如果OWNS.id为null,则以黑白显示,否则以彩色显示。
SELECT *
FROM CHAMPIONS
LEFT JOIN OWNS ON CHAMPIONS.id = OWNS.cid AND OWNS.uid = 1;