Contents

終於知道為什麼子查詢沒辦法抓取外面的表

今天終於找到我以前下子查詢沒辦法抓到外面的表原因

這兩個其實不難分,不要被兩個專有名詞嚇到
先講非相關子查詢,簡單講就是子查詢跟外面 SQL 查詢內容沒有相關
非相關子查詢只會跑一次,所以效能上會非常快
執行順序也比外層先,所以這也是為什麼非相關子查詢沒法取得外層欄位的原因

SQL 子查詢筆記(相關子查詢/非相關子查詢) | 程式狂想筆記

其實子查詢 JOIN 沒辦法抓到外面的表

./1.png

放在 select 跟 where 都可以查

1
2
3
4
5
6
7
SELECT (
    SELECT b.uid
    FROM `xxxxxxxx` b
    where b.`date` = a.`date` and b.uid  = a.uid
) as a
FROM `xxxxxxxx` a
where `date` = '2017-12-01' and uid  = '2239124893975610'

之前也有寫過這篇
SQL ON /WHERE 差別 | 程式狂想筆記

希望以後寫子查詢可以順順利利