我有三個PostgreSQL表:地址,出貨量和計劃。 貨件和時間表都有地址的外鍵。鏈接三個表並查找與要求匹配的數據
地址表中有關於地址的信息:ID,姓名,號碼,街道,州,郵編 裝運表有:ID,跟蹤號碼,date_ship_on,ADDRESS_ID 日程安排表有:ID,週日,週一,星期二,星期三,星期五,星期五,星期六,類型,地址_id
日程表中的所有日子都是布爾值ex:id = 2,sunday = false,monday = true,tuesday = true,wednesday = true,thrusday = false,friday = false,saturday = false,type ='reporting',address_id = 1
我想要做的是,將三個表連接起來,找到沒有船員的地址t昨天發出,它應該基於時間表類型「報告」。舉例來說,我們有3個地址,芝加哥,洛杉磯,紐約,今天是星期二,芝加哥昨天發出了兩批貨物(發貨日期存儲在date_shipped_on中,所以它會有昨天的日期,我們可以找到昨天的哪一天是從這個日期),但洛杉磯和紐約沒有發送任何東西,芝加哥和洛杉磯在週一的報道日程表上都是正確的,但紐約市則沒有。我應該從我的結果中得到回報,因爲它沒有星期一發送的貨物,但應該根據時間表。我會在前一天每天運行這個報告。
我試過幾個不同的東西,但沒有運氣。任何幫助將不勝感激。
時間戳的下限應該是包容性的(因爲午夜可能是有效的),但上限是排他性的(「今天」之前的所有內容)。風格點:通常最好只爲與'FROM'子句引用進行比較的條件保留'WHERE'子句,並將所有其他引用其他連接的條件作爲其ON子句的一部分;這保持了它們所在的地方的條件。 –