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 回答