【发布时间】:2020-06-08 12:17:57
【问题描述】:
我正在尝试组合查询、连接和条件。我检查了一些类似的问题(1、2),但仍然无法正常工作。
SELECT col1, col2, col3
FROM T1
LEFT JOIN (SELECT colx, coly, colz
FROM T2
WHERE colz = 1) ON col1=coly
我正在尝试将 T1 与 T2 与 col1=coly 一起加入其中 colz=1。每张表有100列,我只需要col1, col2, col3和colx, coly, colz。
此外,这种方法效率最高吗?
【问题讨论】:
-
提供样本数据和期望的结果。我们无法猜测您要做什么。
-
解释“不工作”是什么意思。如果您没有从第二个表中选择任何列,为什么要使用
left join? -
@GordonLinoff 我刚刚添加了一个解释。我没有这样做,因为我认为它是明确的。你的意思是我没有从 T2 中选择任何列?因为我从 T2 中选择 colx、coly 和 colz。
-
您应该使用的简化版本:
SELECT col1, col2, col3, colx, coly, colz FROM T1 LEFT JOIN T2 ON T1.col1=T2.coly and T2.Colz=1这没有给出预期的结果吗?您收到的错误消息/输出是什么? -
@Chris 如果您只想返回 T1 中的列,为什么要加入?左连接将返回 T1 的所有行,因此您可以只使用
select col1, col2, col3 from T1
标签: mysql sql sql-server