問題是,我該如何編寫一個聲明來使用sql join返回所有使用NO Orders TODAY的客戶?SQL語句讓所有沒有訂單的客戶今天(當前日期)
表:TBL_MEMBER,tbl_order TBL_MEMBER包括ID,名稱, tbl_order包括ID,日期,foodOrdered
問題是,我該如何編寫一個聲明來使用sql join返回所有使用NO Orders TODAY的客戶?SQL語句讓所有沒有訂單的客戶今天(當前日期)
表:TBL_MEMBER,tbl_order TBL_MEMBER包括ID,名稱, tbl_order包括ID,日期,foodOrdered
如果你離開加盟,選擇其中右邊的表是nulkl,它限制到
select t1.*
from tbl_member t1
left join tbl_member t2
on t1.id = t2.id -- assuming that t2.id relates to t1.id
and t2.date = current_date() -- today's date in mysql
where t2.id is null
這意味着如果我使用current_date()..每當我改變我的電腦系統日期..noting會發生? –
假設tbl_order日期是日期時間(它可能應該是)爲SQL Server,你可以使用類似:
declare @tbl_member table
(
id int,
fullname varchar(50)
)
declare @tbl_order table
(
id int,
orderdate datetime,
foodOrdered varchar(50)
)
INSERT INTO @tbl_member VALUES (1, 'George Washington')
INSERT INTO @tbl_member VALUES (2, 'Abraham Lincoln')
INSERT INTO @tbl_member VALUES (3, 'Mickey Mouse')
INSERT INTO @tbl_member VALUES (3, 'Donald Duck')
INSERT INTO @tbl_order VALUES (1, '2017-07-01 13:00:00', 'Fish and Chips')
INSERT INTO @tbl_order VALUES (2, '2017-07-03 08:00:00', 'Full English')
INSERT INTO @tbl_order VALUES (3, '2017-07-25 08:00:00', 'Veggie Burger')
INSERT INTO @tbl_order VALUES (3, '2017-07-25 12:00:00', 'Bangers and Mash')
SELECT id, fullname FROM @tbl_member WHERE id NOT IN
(SELECT id FROM @tbl_order
WHERE CAST(orderDate as date) = CAST(GETDATE() as Date))
不符合連接條件的行
它有助於指定使用什麼味道數據庫,因爲語法常常有細微的差別。
因此您沒有註冊tbl_order的成員? –
你可以添加一個AND語句到你的連接中,如:「JOIN表ON t1.id = t2.id AND t2.date <> NOW」或類似 – RealCheeseLord
@Conny這是令人難以置信的,它的工作......但如果我更改我的電腦系統日期...我沒有訂單....可以幫助我一種方法來防止...也許服務器日期... –