MySQL 左连接(我认为)

标签 mysql sql database

我遇到了一个问题。我有 3 张 table ,我加入了他们但无法得到正确的答案,如果有人可以帮助我,我将不胜感激。所以我想要的是让 Answer 向我展示未使用的 Material 。表:enter image description here

在很多帮助下,我得到了所有未使用的 Material :

SELECT DISTINCT(Materials.Material_Name) AS Unused_materials FROM Materials
LEFT JOIN Table2 ON Table2.Material_Number = Materials.Material_Number
LEFT JOIN Table1 ON Table1.Procedure_Name = Table2.Procedure_Name
WHERE Table1.Procedure_Name IS NULL 

更新: 如果我可以在同一篇文章中再问一个问题。或许任何人都知道如何获得上述信息,只需通过通缉日。喜欢:2012-11-20 未使用的 Material ?

最佳答案

按照现有的方式加入表 1 和表 2 只会为您提供已用 Material 的行。您要做的是选择所有未使用的 Material 。为此,只需将 NOT IN 结构与子查询一起使用:

SELECT Material_Name AS Unused_materials
FROM Materials
WHERE Materials.Material_Number
    NOT IN (SELECT Material_Number FROM Table2)

更新:现在我了解了数据模型(只需要表 1 中列出的过程中未使用的 Material ),如果对查询:

SELECT Material_Name AS Unused_materials
FROM Materials
WHERE Materials.Material_Number
    NOT IN (SELECT Material_Number FROM Table2
             INNER JOIN Table1
                ON Table1.Procedure_Name = Table2.Procedure_Name)

关于MySQL 左连接(我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147671/

相关文章:

c# - 当数据为阿拉伯语时,选择查询不起作用,使用带参数的动态查询

Mysql INNER JOIN 和 HAVING COUNT

c# - 如何将日期值转换为oracle日期值?

c# - 返回网络服务中的最后一行

sql - 连接表 (UNION ALL) 其中一个表缺少其中一列

sql - 挣扎于电话号码的 MySQL 数据库

c# - 如何更改已部署应用程序中的数据库设计?

php - Doctrine QueryBuilder > 使用多对多关系

sql - mysql索引配置

php - 在 MySQL 表中搜索文本字符串,如果找到则返回 [简单]