我有两张表如下..
药物_大师
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;
请阅读有关JOIN
s 的更多信息:
您可能需要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
.