我现在已经为类似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。
所以我有两个问题: 我怎么能整齐地查询数据库,返回关于条形码的所有信息? 如何在屏幕上以有效的方式显示此信息?
答案 0 :(得分: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'
如果您有一些不在卡片或武器中的产品,您可以使用左外连接
希望这会对你有所帮助。