簡體   English   中英

選擇聯接為空的位置

[英]Select where Join is Null

我有兩張桌子,一張有物品,第二張有庫存。 我想選擇沒有庫存的項目。 在這種情況下,第二個表中沒有數據。

表格1

ID  Item
01  Car
02  Bike
03  Motorbike

表2

ID  Amount
01  1
02  -1

因此,商品03當前無庫存。

我的SQL看起來像這樣

SELECT
  ITEM.ITEMNR,
  LAGERBESTAND.AMOUNT
FROM
  ITEM
INNER JOIN STOCKAMOUNT ON STOCKAMOUNT.ITEMLFDNR = ITEM.LFDNR
GROUP BY
  ITEM.ITEMNR,
  STOCKAMOUNT.AMOUNT
HAVING
  STOCKAMOUNT.AMOUNT = 0

原因“存貨量= 0”不起作用。

您需要左外部連接,內部連接將僅返回滿足連接條件的行。

我認為您不需要為此分組。

這通過使用左聯接來工作。

SELECT
  ITEM.ITEMNR,
  coalesce(STOCKAMOUNT.AMOUNT,0) amount
FROM ITEM
LEFT JOIN STOCKAMOUNT 
ON STOCKAMOUNT.ITEMLFDNR = ITEM.LFDNR
WHERE STOCKAMOUNT.ITEMLFDNR IS NULL

暫無
暫無

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

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