【问题标题】:How to display a column from one table which is not in the other table but the field name is same如何显示一个表中不在另一个表中但字段名称相同的列
【发布时间】:2015-11-24 16:26:27
【问题描述】:

SQL 服务器:

SELECT tblModule.ModuleID tblActivity.ModuleID,
FROM   tblActivity
       LEFT JOIN tblModule
            ON  tblModule.ModuleID LIKE 'Null'
            AND tblModule.ModuleID = tblActivity.ModuleID
ORDER BY
       tblModule.ModuleID

好的,所以在这里我试图显示来自tblModuleModuleIDtblActivity 中的ModuleID 下不可用此代码不起作用它说:

消息 156,级别 15,状态 1,行 2 关键字“FROM”附近的语法不正确。

问题本身是 - 使用外部连接查询列出没有为其安排活动时间表的任何模块。(5)

【问题讨论】:

  • 语法错误是from前面的逗号。不知道like 'Null'应该是什么,可能是is null,但它与另一个表中的值不匹配

标签: sql-server


【解决方案1】:

您的字段列表后面有一个逗号 (,),您的 2 个字段之间也没有包含任何逗号 (,)。

SELECT tblModule.ModuleID, tblActivity.ModuleID 
FROM tblActivity 
LEFT JOIN tblModule ON tblModule.ModuleID LIKE 'Null' 
    AND tblModule.ModuleID = tblActivity.ModuleID 
ORDER BY tblModule.ModuleID

这是您要查找的内容,尽管左连接可能存在缺陷。您可能正在寻找这个:

SELECT tblModule.ModuleID tblActivity.ModuleID 
FROM tblActivity 
LEFT JOIN tblModule ON tblModule.ModuleID = tblActivity.ModuleID 
ORDER BY tblModule.ModuleID

基本上,LEFT JOIN 尝试满足要求,否则将使用 NULL 字段连接。

【讨论】:

    【解决方案2】:

    首先你这里有额外的昏迷tblActivity.ModuleID ,

    NULL 比较应该放在 where

    SELECT tblModule.ModuleID,   tblActivity.ModuleID
    FROM tblActivity
    LEFT JOIN tblModule
        ON tblModule.ModuleID = tblActivity.ModuleID
    WHERE tblModule.ModuleID IS  NULL
    Order by tblModule.ModuleID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 2021-05-27
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多