簡體   English   中英

用三個表連接sql查詢

[英]Joining sql query with three tables

我必須加入三張桌子。

1 表是交易,下一張表是商店,第 3 表是天氣。

我想從所有這三個中獲取數據,但在天氣表 > id,tamp_c,datetime 列名的情況下。

查詢是:-

 select HOUR(transaction.time) as Hour ,
        TRUNCATE(sum(transaction.total),2) as Total_Sales,
        shops.gstIncludedSales as GST_Inc_Sales,
        shops.gstFreeSales as GST_Free,weather.temp_c 
        from transaction,shops,weather 
        where transaction.shopid=shops.id and transaction.shopid=7
        and transaction.transaction_date ='2015-05-25' 
        group by hour 
        ORDER BY hour DESC

問題是我想對像time(datetime)='2015-05-25'這樣的特定日期應用帶有weather.datetime表分離的where子句,但它不起作用。

嘗試這個:

WHERE transaction.transaction_date >= '2015-05-25' AND transaction.transaction_date < '2015-05-26'

這將在全天(午夜到午夜 - 隱含時間)返回帶有時間戳的行。

如果您有 SQLServer 2014,則可以使用 DATE(transaction.transaction_date)。

這是否做你想做的

SELECT HOUR(transaction.time) as Hour ,
   TRUNCATE(sum(transaction.total),2) as Total_Sales,
   shops.gstIncludedSales as GST_Inc_Sales,
   shops.gstFreeSales as GST_Free,weather.temp_c 
FROM transaction
JOIN shops ON transaction.shopid=shops.id
JOIN weather ON DATE(transaction.transaction_date) = DATE(weather.datetime)
WHERE DATE(transaction.transaction_date)='2015-05-25' AND transaction.shopid=7
GROUP by hour 
ORDER BY hour DESC

(假設您使用的是 MySQL)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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