簡體   English   中英

子查詢SQL內的INNER JOIN

[英]INNER JOIN inside Subquery SQL

我在像這樣在子查詢中插入內部聯接時遇到問題:

SELECT * FROM (
    SELECT *,
    (DATEDIFF(day, Date, CurrentDate)) AS Age
    FROM Order_Member   
)sub
    WHERE Age > 7

在這種情況下,它將產生如下輸出:

OrderID    Date     CurrentDate Quantity Total Age
 O01    2017-05-22  2017-05-31     3      150   9
 O02    2017-05-23  2017-05-31     2      160   8

它可以正常運行,僅顯示年齡> 7,但是我不能使用INNER JOIN將另一個表放入子查詢中。 有幫助嗎?

當然可以,只需在子查詢中添加一個inner join子句即可:

SELECT * FROM (
    SELECT    *,
              (DATEDIFF(day, Date, CurrentDate)) AS Age
    FROM       Order_Member om   
    INNER JOIN Other_Table ot on om.id = ot.id -- Here
)sub
    WHERE Age > 7

在檢查完您的問題和查詢后,我認為您甚至都不需要子查詢

SELECT om.*, ot.*, (DATEDIFF(day, Date, CurrentDate)) Age
FROM Order_Member om
INNER JOIN  Other_Table ot on om.id = ot.id -- Here
WHERE  (DATEDIFF(day, Date, CurrentDate)) >7

除此之外,您還有其他選擇,例如“ 交叉應用 ”。

你可以使用table1,table2代替sub

暫無
暫無

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

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