我有两张表如下..
药物_大师
PKDrugId - int
DrugName - varchar
DrugType - varchar
Stock_Master
PKStockId - int
FKDrugId - int
Total_quantity_on_hand - int
我想编写一个显示DrugName而不是FKDrugId在Stock_Master表中显示的查询。
谁能帮忙?
我有两张表如下..
药物_大师
PKDrugId - int
DrugName - varchar
DrugType - varchar
Stock_Master
PKStockId - int
FKDrugId - int
Total_quantity_on_hand - int
我想编写一个显示DrugName而不是FKDrugId在Stock_Master表中显示的查询。
谁能帮忙?
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;
请阅读有关JOINs 的更多信息:
您可能需要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;
您可以使用相关的子查询,而不是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;
但最好使用JOIN.