簡體   English   中英

錯誤代碼:1052。where子句中的列“ datetime”不明確

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM