该数据库是视频租赁商店的一个非常基本的概念。数据库使用PHP(以及HTML,CSS,bootstrap等)显示。SQL/PHP如何使用LEFT JOIN进行过滤?
我有表:
tl_dvd:持有的关于dvd,时间日期,名字,语言的基本信息等
tl_order:其中包含租用电影的人的姓名和开始日期。
tl_client:这不是我的问题/问题确实有关,而只是持有客户的名字和姓氏。
当我在订单页面上时,它显示当前正在运行的所有订单。我有一列tl_order
叫returned
与在0
代表未归还和1
代表返回一个TINYINT。
有一个按钮,说:“terug gebracht”(=英语“收回”),将所选择的顺序设置为1 的tl_order只显示尚未返回的订单(0 returned
集)。在SQL查询我设置类似... AND returned = 0';
这里到底是哪里我应该使用LEFT (OUTER?) JOIN
的一部分。如果一个订单没有回来(所以这意味着returned
仍然在0
在tl_order
)dvd不应该出现在我的tl_dvd
(想想它就好像我们只有一个dvd副本为每部电影)。我在tl_dvd
尝试这些LEFT JOIN
S:
'SELECT * FROM tl_dvd LEFT JOIN tl_order WHERE tl_order.returned = 1';
打破我的页面500错误。
'SELECT * FROM tl_dvd LEFT JOIN tl_order ON tl_order.returned = 1';
不给我一个错误,但修建垃圾每部影片像3倍。
有人可以解释我如何解决这个问题或我做错了什么?
当联接表,你”即使不显示2个表格的字段,每个组合的2个表格也会得到一行。尝试从两个表中选择,了解我的意思。您错过了ON子句以在JOIN中关联ID。 – arvymetal
目前还不清楚你想要输出什么。请阅读[mcve]并采取行动。请尽可能使用文字。在这里,而不是图像;格式表中的代码块。 PS你说“该DVD不应该出现在我的tl_dvd”,但你不是说,在*输出*? (看我的答案。) – philipxy