我有兩張桌子:regions和regions_access_purchases。我需要一種方法來生成用戶結果表,其中包含有關他當前活動購買的資訊(訪問區域)。
- 如果用戶沒有任何購買/訪問的區域,他應該獲得完整的區域串列。
- 如果他有一些購買的地區,他應該得到完整的地區串列,并從右欄中附加關于他的
purchaseEndDate.
我嘗試了不同的連接,但它們都不起作用:
SELECT region_id, translite_name, "purchaseEndDate" FROM regions
FULL OUTER JOIN regions_access_purchases reg_purch ON regions.id = reg_purch.region_id
WHERE user_id = 1 AND
"purchaseEndDate" > now()
我只得到兩個區域,但我需要獲得完整的區域串列,右側的列帶有“purchaseEndDate”。如果“purchaseEndDate”小于現在它不應該出現,但區域應該顯示在串列中。
有可能做這樣的加入嗎?
http://sqlfiddle.com/#!15/30e72/2
uj5u.com熱心網友回復:
如果您將條件從陳述句WHERE移至FROM陳述句并更改FULL JOIN為,LEFT JOIN您將獲得預期的結果:
SELECT * FROM regions
LEFT JOIN regions_access_purchases reg_purch ON regions.id = reg_purch.region_id AND user_id = 1 AND "purchaseEndDate" > now()
PS不確定您是否需要添加purchaseEndDate來查詢,按照您在示例中的方式添加它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/422770.html
標籤:
上一篇:呼叫API(MERN堆疊)時節點/express后端崩潰
下一篇:VBA網頁點擊
