首页 > 解决方案 > 使用子查询创建的表的 SQL 连接案例

问题描述

我有一个子查询的输出

SELECT roll, marks FROM STUDENTS WHERE std in (1,2,3,4,5,6) and belongsTo in ('A', 'B', 'C') and subject = 'maths'

只有当另一个表中的列的值为 Teacher.code = 1 时,我才想加入我的表,否则我不希望考虑上面的子表

OTHER INNER JOIN AND SELECT TABLE STATEMENT
INNER JOIN (SELECT roll, marks FROM STUDENTS WHERE std in (1,2,3,4,5,6) and belongsTo in ('A', 'B', 'C') and subject = 'maths') GRADE  
ON CASE
WHEN Teacher.code = 1 THEN /* the above join should be used*/
WHEN Teacher.code= 2 THEN /* above join should not be used */

标签: sqlsql-server

解决方案


你似乎想要这样的东西:

ON Teacher.code = 1 AND <join conditions> OR
   Teacher.code = 2

据推测,如果Teacher.code既不是1也不是您想要匹配2的手段。ELSE 0


推荐阅读