2017-07-25 68 views
0

問題是,我該如何編寫一個聲明來使用sql join返回所有使用NO Orders TODAY的客戶?SQL語句讓所有沒有訂單的客戶今天(當前日期)

表:TBL_MEMBER,tbl_order TBL_MEMBER包括ID,名稱, tbl_order包括ID,日期,foodOrdered

+0

因此您沒有註冊tbl_order的成員? –

+0

你可以添加一個AND語句到你的連接中,如:「JOIN表ON t1.id = t2.id AND t2.date <> NOW」或類似 – RealCheeseLord

+0

@Conny這是令人難以置信的,它的工作......但如果我更改我的電腦系統日期...我沒有訂單....可以幫助我一種方法來防止...也許服務器日期... –

回答

1

如果你離開加盟,選擇其中右邊的表是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 
+0

這意味着如果我使用current_date()..每當我改變我的電腦系統日期..noting會發生? –

0

假設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)) 
不符合連接條件的行

它有助於指定使用什麼味道數據庫,因爲語法常常有細微的差別。

相關問題