我有两个表,都包含created_at列。
用户:id,first_name,last_name,created_at
条目:id,user_id,created_at
下面是返回所有条目和用户的查询,但我需要添加条件以显示相应的created_at日期
select users.id, first_name, last_name, entries.created_at
from users left join sweepstakes_entries on users.id = entries.user_id;
我将一个csv的mail-in条目导入到users表中,我需要编写一个sql语句,返回输入它们的用户的所有条目,以及我在users表中输入的邮件条目。
我使用左连接返回从csv文件导入的用户,因为他们在条目表中没有任何条目,但我仍然需要在sql结果中返回它们。
话虽如此,我需要在条目表(entries.created_at)中显示创建条目的时间的created_at日期,但我需要对created_at进行条件限制,以便当它拉入用户时(用户从mail-in csv导入它不会有条目表中的created_at日期来绑定它,所以我需要做一个条件,而不是使用entries.created_at,我使用users.created_at。
理论上:
if(此记录' users.id未显示在条目表中) 使用users.created_at作为created_at 其他 使用entries.created_at作为created_at
答案 0 :(得分:2)
您有多种选择:
使用COALESCE
- 从列表中返回第一个非空值。 SELECT COALESCE(Col1,Col2,Col3)
使用CASE WHEN, THEN
检查Col1是否为空或=“0000-00-00”返回Col2,反之亦然
答案 1 :(得分:1)