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