該數據庫是視頻租賃商店的一個非常基本的概念。數據庫使用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