0
我正在嘗試製作PHP/MySQL搜索表單。當用戶想要搜索時,他需要填寫3個輸入字段:FromDate,ToDate and SucategoryID。SQL左連接 - 多行右表
有兩個表格:項目和項目塊日期 在表項中,有關於該項目的信息,它由ID標識。 在Table ItemBlockDates中,有關Item不會顯示在搜索結果中的時間段的信息。它包含:ItemID,FromDate和日期字段。另外,可以爲一個項目定義多個Block Date。
現在,我想選擇FromDate和To Date輸入與ItemBlockDates中具有相同ItemID的任何行不匹配的所有Items。
我寫了查詢,但有一個問題:
SELECT *
FROM Items
LEFT JOIN ItemBlockDates ON Items.ID = ItemBlockDates.ItemID
WHERE Items.SubcategoryID = :SubcategoryID
AND ItemBlockDates.FromDate NOT BETWEEN CAST(:FromDate AS DATETIME) AND CAST(:ToDate AS DATETIME)
當我運行此查詢不顯示,其中嵌段日期無法設定的項目,也將顯示項目,其中多個區塊日期爲組。