MYSQL - 2个组合表之间的搜索标准

时间:2016-09-01 04:23:42

标签: mysql vb.net

我想问一些事情

我有两张桌子,那是:

表:一般清单

enter image description here

和表:Item_Master_List

enter image description here

现在我的目标是将基于ItemCode的两个表组合起来,如

...where GeneralInventory.ItemCode=Item_Master_List.ItemCode

这样的事情。现在我做到了,这是我的完整代码

    Select GI.ItemCode,IML.Description,IML.StandardUOM,IML.StandardPrice 
from GeneralInventory GI,item_master_list IML where 
GI.ItemCode = IML.ItemCode

这是输出

enter image description here

现在我的程序中有一些标准,看起来像这样

enter image description here

这是我的问题。如何在我的MYSQL命令中应用搜索功能?我如何搜索正确的数据?使用组合列?我试过这个,但它导致了多个数据冗余

Select Distinct GI.ItemCode,IML.Description,IML.StandardUOM,IML.StandardPrice from 
GeneralInventory GI,item_master_list IML where GI.ItemCode = GI.ItemCode and 
IML.ItemCode = '' or IML.Description = 'Baking Soda 454 g' or IML.StandardUOM = '';

enter image description here

其他问题

我有一个名为Table: StockAdjust的另一个表,这就是它的内容

enter image description here

现在我拥有的最佳代码是

SELECT DISTINCT GI.ItemCode,
                IML.Description,
                IML.StandardUOM,
                IML.StandardPrice
FROM GeneralInventory GI
INNER JOIN item_master_list IML
    ON GI.ItemCode = IML.ItemCode
WHERE IML.ItemCode = 'My Data' OR
      IML.Description = 'My Data' OR
      IML.StandardUOM = 'My Data'

上面的代码会将表格GeneralInventory GIitem_master_list IML结合使用GI.ItemCode = IML.ItemCode,并使用ff过滤条件。 IML.ItemCode, IML.Description and IML.StandardUOM

现在我的问题是如何应用NOT IN命令?喜欢

Above code.....AND GI.ItemCode NOT IN (select ItemCode in StockAdjust)

如何在此处应用代码来执行上述代码,并且不包含已在StockAdjust中的数据;

1 个答案:

答案 0 :(得分:1)

我认为您在查询中感到困惑,因为您将表连接条件放入WHERE子句中,该子句还包含搜索逻辑。而是在查询中使用显式连接语法:

SELECT DISTINCT GI.ItemCode,
                IML.Description,
                IML.StandardUOM,
                IML.StandardPrice
FROM GeneralInventory GI
INNER JOIN item_master_list IML
    ON GI.ItemCode = IML.ItemCode
WHERE (IML.ItemCode = '' AND
       GI.ItemCode NOT IN (SELECT ItemCode FROM StockAdjust) OR
      IML.Description = 'Baking Soda 454 g' OR
      IML.StandardUOM = ''