比较来自不同表格的DOB
因此,我必须列出租户家族中比租户本身更早的任何人的姓名。有两张桌子。租户和tenant_family。我试着比较这两个日期来查看tenant_family表中的哪个DOB小于(意味着它们会更老)租户表中的DOB。比较来自不同表格的DOB
这是我迄今为止,但它似乎是错误的。有人能指导我获得正确的输出吗?
SELECT DISTINCT tenant_family.name
FROM TENANT_FAMILY, tenant
WHERE tenant_family.dob < tenant.TENANT_DOB;
使用DATE函数来提取您的查询的日期部分像比较:
select distinct tenant_family.name from TENANT_FAMILY, tenant where DATE(tenant_family.dob) < DATE(tenant.TENANT_DOB);
如果您dob
和TENANT_DOB
不存储为DATE
数据类型在数据库或它们被存储为DATETIME
,那么你可能只提取使用该功能的日期部分:
select distinct tenant_family.name from TENANT_FAMILY, tenant where date_format(tenant_family.dob,"%y-%m-%d") < date_format(tenant.TENANT_DOB,"%y-%m-%d);
这应该会在比较后给你正确的结果。
我刚刚试过这个,它给了我错误“缺少表达式” – user3363573
你使用的是Oracle 11G吗? – Neels
你可以添加一些样本数据和你期望得到的结果吗?理解你要射击的东西有点困难。 – Mureinik