簡體   English   中英

多列一對多關系

[英]one to many relationship with many columns

我是SQL的新手,對此了解不多,但是我是一個快速的學習者。 我有一個包含商品ID和現有數量(qoh)以及其他一些我沒有遇到問題的列的數據庫。 問題是,當我告訴它給我帶有qoh列的item id列時,由於qoh不同,它為每個單獨的項目提供了將近500行,因此我的字面量約為1200萬行。 現在,我正在尋找的是每個項目的最新數量。 我假設這是一對多的關系,由於我對SQL不了解,所以我什至不知道從哪里開始。 這是我到目前為止的內容:

SELECT DISTINCT item_id, qty_on_hand
FROM database.inv_mast, database.inv_loc
ORDER BY item_id ASC

哦,我正在使用Microsoft SQL Server Management Studio

這是我想要的:

| item_id |qty_on_hand|
|123456789|   93      |
|456789123|   87      |
|789456123|   74      |

等等

但是我得到的是:

| item_id |qty_on_hand|
|123456789|   85      |
|123456789|   82      |
|123456789|   92      |

等等

我得到至少4000次相同的item_id,因為數據庫告訴我自從有了項目以來,每隔一秒鍾的時間是多少。 我只想在運行查詢時倉庫中有什么東西。 我為所有的歉意表示歉意,但我實際上並不了解SQL。

您僅通過使用“,”進行交叉連接。 我需要做的是內部聯接。

SELECT DISTINCT im.item_id, qty_on_hand
FROM database.inv_mast im
INNER JOIN database.inv_loc in on im.item_id = in.item_id
ORDER BY item_id ASC

您還應該查看左右聯接。

因此,總而言之,使用“,”就像使用交叉聯接

您確實需要學習聯接才能理解這些查詢,請訪問下面的網站。

http://www.w3schools.com/sql/sql_join.asp

from子句FROM database.inv_mast, database.inv_loc創建笛卡爾乘積。 使用WHERE條件將其縮小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM