使用dallasfood;
select estab_id from estab as EST left join inspect as INSP on EST.estab_id = INSP.estab_id where inspdate = '8-3-17' and estab_id = '2473'
正在尝试查找如何修复estab\u id的子句不明确结果。我正在尝试查找某个机构在某个日期返回的冲突,但无法找出其不明确的原因
m0rkklqb1#
在选择中使用表名,如 estab_id 两个表中的列,这就是为什么它在查询中显示不明确的原因
estab_id
select EST.estab_id from estab as EST left join inspect as INSP on EST.estab_id = INSP.estab_id where inspdate = '8-3-17' and EST.estab_id = '2473'
mwyxok5s2#
您应该限定查询中的所有列,特别是当有多个表时。最好的别名通常是最短的——表名的缩写。另外,您应该使用标准的日期格式,假设您的日期存储为日期。比如说:
select e.estab_id from estab e left join inspect i on e.estab_id = i.estab_id and i.inspdate = '2017-08-03' where e.estab_id = 2473;
其他注意事项:我去掉了单引号 2473 . 如果 estab_id 确实是一个字符串,则包含单引号。如果它是一个数字,那么这是一个坏主意,因为您正在混合数据类型。我想 inspdate 来自 inspect ,因此符合 i .表中第二个表的条件 left join 一般都是在 on 条款。否则,连接将变为内部连接。
2473
inspdate
inspect
i
left join
on
2条答案
按热度按时间m0rkklqb1#
在选择中使用表名,如
estab_id
两个表中的列,这就是为什么它在查询中显示不明确的原因mwyxok5s2#
您应该限定查询中的所有列,特别是当有多个表时。
最好的别名通常是最短的——表名的缩写。另外,您应该使用标准的日期格式,假设您的日期存储为日期。
比如说:
其他注意事项:
我去掉了单引号
2473
. 如果estab_id
确实是一个字符串,则包含单引号。如果它是一个数字,那么这是一个坏主意,因为您正在混合数据类型。我想
inspdate
来自inspect
,因此符合i
.表中第二个表的条件
left join
一般都是在on
条款。否则,连接将变为内部连接。