1

別のテーブルの列の ID リストとして格納されている製品の名前を選択しようとしています。検索する列が 20 あるため、私の通常のアプローチでは膨大なクエリが作成されます。誰かがこれを行う簡単な方法を提案できますか?

Table1:
id | productName

Table2
id | p1 | p2 | p3 | p4... up to p20

p1 ~ p20 には、それぞれ table1 の製品の ID 番号が含まれています

table2 の行を選択し、p1-p20 を table1 の対応する productName に置き換える必要があります

ありがとう!

4

1 に答える 1

1

誰かがこれを行う簡単な方法を提案できますか?

これは簡単な方法だと思います:

SELECT 
    Table2.id,
    T1.productName,
    T2.productName,
    T3.productName,
    -- etc...
FROM Table2
JOIN Table1 T1 ON Table2.p1 = T1.id
JOIN Table2 T2 ON Table2.p1 = T2.id
JOIN Table3 T3 ON Table2.p1 = T3.id
-- etc...

はい、これは巨大なクエリですが、単純です。


データベースの設計を再検討することをお勧めします。ここに提案があります:

Table1:
id | productName

Table2
id | index | productid
1    1       p1
1    2       p2
1    3       p3
...etc

次のようにクエリします。

SELECT id, index, productName
FROM Table2
JOIN Table1
ON Table2.productid = Table1.id
于 2012-05-02T17:34:46.830 に答える