-1

私は次のように2つのテーブルを持っています..

Drug_Master

PKDrugId - int

DrugName - varchar

DrugType - varchar

Stock_Master

PKStockId - int

FKDrugId - int

Total_quantity_on_hand - int

DrugNameの代わりにFKDrugId表示されるクエリを書きたいです。Stock_Master

誰でも助けることができますか?

4

1 に答える 1

2

JOIN次のようなテーブル:

SELECT
  s.PKStockId,
  d.DrugName,
  s.Total_quantity_on_hand 
FROM Stock_Master s
INNER JOIN Drug_Master d ON s.FKDrugId  = d.PKDrugId;

SQL フィドルのデモ

sについてもっと読んでくださいJOIN

一致しない行を取得するLEFT JOIN代わりに必要になる場合があります。INNER JOINたとえば、他のStock_Masterテーブルに在庫エントリがない医薬品名を含める必要がある場合は、次のようにできます。

SELECT
  ISNULL(s.PKStockId, 0),
  d.DrugName,
  ISNULL(s.Total_quantity_on_hand, 0) 
FROM Drug_Master d
LEFT JOIN Stock_Master s ON s.FKDrugId  = d.PKDrugId;

LEFT JOIN SQL Fiddle デモ

JOIN次のような代わりに、相関サブクエリを使用できます。

SELECT 
  s.PKStockId,
  (SELECT d.DrugName
   FROM  Drug_Master d 
   WHERE s.FKDrugId  = d.PKDrugId) AS DrugName,
  s.Total_quantity_on_hand 
FROM Stock_Master s;

サブクエリを使用した SQL Fiddle デモ

でも使ったほうがいいJOINです。

于 2013-01-01T08:11:23.540 に答える