1

表: 製品: 属性: pid、名前

テーブル名:item_product

属性: Itemid、@pid、長さ、価格、色。pid は製品の外部キーです

Itemid       pid            length          price    colour
1              1              3               5        blue
2              1              4               10        red
3              2              3               5         blue
4              2              6               20         green
5              3              4               4           g
6              4              3                3          r
7               1              3               4           e
8               1              4               6           r                   
9               2              6                100      light_blue

pidはデータベースを考え抜いて繰り返されますが、上の表はそれがどのようなものかについての小さなアイデアです 製品IDとその色に関連する長さからすべてを選択したい

このクエリがありますが、繰り返されます

SELECT length, 
price FROM item_product WHERE pid=:id 

上記のクエリを実行して pid を 1 に変更すると、pid 1 のすべてが表示されますnameが、product table

4

2 に答える 2

0

以下を使用できます。テーブルproductへの内部結合を使用し、名前にwhere句を追加しました。

SELECT ポイント名、
長さ、
価格
FROM item_product as pr
        pt.pid = pr.pid の pt としての内部結合積
WHERE pr.pid = 1 and pt.name = '名前'

where 句では、製品の名前でフィルター処理する必要があります。[名前] をあなたが求めているものに変更してください。

名前のみでフィルタリングしたい場合は、上記と同じクエリですが、名前に対してのみwhere句を実行します。

SELECT ポイント名、
長さ、
価格
FROM item_product as pr
        pt.pid = pr.pid の pt としての内部結合積
WHERE pt.name = '名前'

これがあなたが求めているものかどうか教えてください。

于 2013-06-13T00:46:22.390 に答える
0

INNER JOIN次のように使用できます。

たとえば、、、、、という名前のMouse製品KeyboardMonitorあります。私のテーブルには、マウス、キーボード、モニター、タブレットのアイテムしかありませんが、. したがって、2 つのテーブルのハード ドライブは除外されますが、それはテーブルにはありませんが、テーブルにはあります。TabletHard DriveItem_ProductHard DriveINNER JOINItem_ProductProduct

SELECT Itemid, B.name, length, price, colour
FROM item_product A
INNER JOIN product B
ON A.pid = B.pid

私のデモをチェックsqlfiddle

特定の製品のみを表示したい場合は、次のように製品 ID (pid) または製品名を使用できます。

SELECT Itemid, B.name, length, price, colour
FROM item_product A
INNER JOIN product B
ON A.pid = B.pid
WHERE B.name = 'Mouse'

はこちら

このリンクJOINを確認して詳細を理解したい場合は、SQLでどのように機能するかを視覚的に表現しています。JOIN

于 2013-06-13T00:44:11.053 に答える