我的sql中有多个子查询
SELECT *,
(SELECT Col1 FROM MYTABLE2 WHERE SAME) AS Col1,
(SELECT Col2 FROM MYTABLE2 WHERE SAME) AS Col2,
(SELECT Col3 FROM MYTABLE2 WHERE SAME) AS Col3,
(SELECT Col4 FROM MYTABLE2 WHERE SAME) AS Col4,
FROM MYTABLE1 WHERE XXX
如何将其转换为一个JOIN?子查询是相同的,只有Select列名称不同。
答案 0 :(得分:1)
SELECT MYTABLE1.*, MYTABLE2.*
FROM MYTABLE1
LEFT OUTER JOIN MYTABLE2
ON same
WHERE XXX
ON不必将两个表关联起来 这更像是过滤后的交叉连接
答案 1 :(得分:0)
也许你应该使用UNION而不是JOIN?
答案 2 :(得分:0)
SELECT t1.*, t2.col1, t2.col2, t2.col3, t2.col4
FROM MYTABLE1 T1
INNER JOIN MYTABLE2 T2
ON T1.somecol = T2.somecol --replace with appropriate join condition
WHERE XXX
and --same conditions as previous (WHERE SAME)
这就是你要做的。您应该根据在线注释进行必要的更改。