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に追加しています。

だから私は2つの質問があります:バーコードについて持っているすべての情報を返すように、データベースをきちんとクエリするにはどうすればよいですか?この情報を画面に効率的に表示するにはどうすればよいですか?

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 に答える