【问题标题】:SQL joins confusion [duplicate]SQL加入混乱[重复]
【发布时间】:2013-11-29 18:10:29
【问题描述】:

这个连接有什么问题??? 控制台说

Error Code: 1051
Unknown table 'invlabtes'


SELECT invlabtes.*, invgatepass.BuiltySupp FROM invlabtes FULL JOIN invgatepass ON(invlabtes.GatePassNO=invgatepass.InwardNo AND invlabtes.GatePassDate=invgatepass.EntryDate AND invlabtes.VehicleNo=invgatepass.VehicleNo) WHERE  invlabtes.Code='*****'

如果我将完全连接替换为内部连接,则查询将返回一个条目。

我想要的只是基于 invlabtes.Code 从 invlabtes 表中获取数据,即使连接条件失败并且 invgatepass 没有匹配的 builtySupp

【问题讨论】:

  • Uhhh.. 表invlabtes 是否存在于您的数据库中?也许拼写错误或者您可能选择/配置了错误的数据库?本地或远程,可能你忘记在远程数据库中添加表了..

标签: mysql sql sqlyog


【解决方案1】:

Mysql 不支持FULL 关键字并将其转换为表别名。所以你的 invlabtes 表现在被命名为 FULL。

【讨论】:

    【解决方案2】:

    如果您想始终从 invlabtes 表返回数据,即使它在 invgatepass 中没有匹配,请尝试使用 LEFT JOIN,因为 Mysql 不支持完全连接

    SELECT 
    invlabtes.*, invgatepass.BuiltySupp 
    FROM 
    invlabtes LEFT JOIN 
    invgatepass 
    ON
    invlabtes.GatePassNO=invgatepass.InwardNo
    AND 
    invlabtes.GatePassDate=invgatepass.EntryDate 
    AND 
    invlabtes.VehicleNo=invgatepass.VehicleNo 
    WHERE  
    invlabtes.Code='*****'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多