0

我现在已经为类似 POS 的系统创建了一个 MySQL 数据库,并且我正在使用子类型将一些不同的类型放入我的数据库中。

CREATE TABLE Product(
Prod_id INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(40),
Barcode INT
);

CREATE TABLE Card(
Prod_id INT,
Price DECIMAL(8, 2),
FOREIGN KEY (Prod_id) REFERENCES Product(Prod_id)
);
CREATE TABLE Weapon(
Prod_id INT,
Caliber_id INT,
FOREIGN KEY (Prod_id) REFERENCES Product(Prod_id)
);

当我扫描条形码时,我想查询数据库。找到产品后,我想在屏幕上显示有关它的所有信息。我在 C# 中使用 DataTable,对于每个结果,我都将 DataRow 添加到 DataTable 中。

所以我有两个问题:我怎样才能巧妙地查询数据库,返回我拥有的关于条形码的所有信息?如何在我的屏幕上以有效的方式显示这些信息?

4

1 回答 1

2

我假设您只使用提到的表格

请找到下面的sql语句,它将根据需要返回所有信息

Select p.Prod_id,p.Name,p.Barcode,c.Price, w.Caliber_id 
from Product p
inner join Card c
on 
(
p.Prod_id  = c.Prod_id 
)
inner join Weapon w
on 
(
p.Prod_id  = w.Prod_id 
) 
where p.Barcode = 'Barcode'

如果您有一些不在卡片或武器中的产品,您可以使用左外连接

希望这会帮助你。

于 2012-12-23T15:26:38.153 回答