基于另一个查询的列表的SQL查询

时间:2020-07-09 20:41:04

标签: sql-server

我正在尝试构建一个查询,该查询将基于非常相似的查询的结果生成记录列表。

以下是详细信息和示例

查询1 :如果零件#位于仓库的特定位置,则生成一个列表。

查询2 :使用在#1中生成的部件#的列表来显示部件#列表的所有位置,假设它们将同时在#1中指定的位置和其他位置。

查询1如下:

Select
    ItemMaster.ItemNo, BinInfo.BIN, ItemDetail.Qty, ItemDetail.Whouse_ID
From
    ((ItemDetail
Left Join 
    ItemMaster on ItemMaster.ID=ItemDetail.Item_ID)
Left Join 
    BinInfo on BinInfo.ID = ItemDetail.Bin_ID)
Where  
    ItemDetail.Whouse_ID  = '1'
    And BinInfo.Bin = 'VLM';

查询2需要几乎相同,除了ItemMaster.ItemNo列表将来自查询#1。

这里的任何帮助都会很棒。我不知道我是否需要学习联合,嵌套查询或其他内容。

1 个答案:

答案 0 :(得分:1)

  1. 确保您的第一个查询返回所需的ID列表。

  2. 然后使用WHERE id IN (...)语法编写第二个查询:

    SELECT * FROM table1 WHERE id IN
    (SELECT id FROM table2 WHERE...) -- first query