[英]Creating a view, Error Code: 1052. Column “id” in field is ambiguous
[英]Error Code: 1052. Column 'datetime' in where clause is ambiguous
我有15个具有相同列名的表,并且想在datetime条件下检索数据,但仍在努力寻找方法。
select * FROM AlbertstreetIN1,
AlbertstreetIN2,
AlbertstreetOUT1,
AshtonRPIN1,
AshtonRPIN2
WHERE datetime BETWEEN "2014-08-31 00:00:00" AND "2014-08-31 23:59:59";
所有表名的数据时间都不明确-错误。
表格格式-id,camera_id,名称,标牌,日期时间,国家,图像名称,图像。
如果一列不明确,则意味着查询中的多个表都有该名称的列。
因此,您必须通过添加表名称来告诉数据库您要指的是哪一列。
WHERE AlbertstreetIN1.datetime BETWEEN '2014-08-31 00:00:00'
AND '2014-08-31 23:59:59'
不知道您要哪种状态的表。 我只是选了一个。
而且您没有指定如何联接表。 它们必须以某种方式链接,并且您需要在查询中指定。
否则,你需要union
他们这样
select * FROM AlbertstreetIN1 WHERE datetime BETWEEN '2014-08-31 00:00:00'
AND '2014-08-31 23:59:59'
UNION ALL
select * FROM AlbertstreetIN2 WHERE datetime BETWEEN '2014-08-31 00:00:00'
AND '2014-08-31 23:59:59'
UNION ALL
select * FROM AlbertstreetOUT1 WHERE datetime BETWEEN '2014-08-31 00:00:00'
AND '2014-08-31 23:59:59'
UNION ALL
select * FROM AshtonRPIN1 WHERE datetime BETWEEN '2014-08-31 00:00:00'
AND '2014-08-31 23:59:59'
UNION ALL
select * FROM AshtonRPIN2WHERE datetime BETWEEN '2014-08-31 00:00:00'
AND '2014-08-31 23:59:59'
在where条件中使用表名或别名。 由于datetime
存在于多个表中,因此如果没有表名或其别名,则无法在WHERE条件下使用它。
就像AlbertstreetIN1.datetime
一样。
你可以这样尝试吗?
datetime是MYSQL中关键字/预定义的关键字之一
WHERE datetime BETWEEN "2014-08-31 00:00:00" AND "2014-08-31 23:59:59";
至
WHERE `datetime` BETWEEN "2014-08-31 00:00:00" AND "2014-08-31 23:59:59";
或像这样的东西
WHERE (AlbertstreetIN1.datetime BETWEEN "2014-08-31 00:00:00" AND "2014-08-31 23:59:59") || (AlbertstreetIN2.datetime BETWEEN "2014-08-31 00:00:00" AND "2014-08-31 23:59:59");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.