我正在尝试选择存储在不同表列中的产品名称作为 ID 列表。有 20 列要查找,所以我的正常方法会进行大量查询。有人可以建议一个简单的方法来做到这一点吗?
Table1:
id | productName
Table2
id | p1 | p2 | p3 | p4... up to p20
p1 - p20 每个都包含 table1 中产品的 ID 号
我需要在table2中选择行,将p1-p20替换为table1中对应的productName
谢谢!
我正在尝试选择存储在不同表列中的产品名称作为 ID 列表。有 20 列要查找,所以我的正常方法会进行大量查询。有人可以建议一个简单的方法来做到这一点吗?
Table1:
id | productName
Table2
id | p1 | p2 | p3 | p4... up to p20
p1 - p20 每个都包含 table1 中产品的 ID 号
我需要在table2中选择行,将p1-p20替换为table1中对应的productName
谢谢!
有人可以建议一个简单的方法来做到这一点吗?
我想这是一个简单的方法:
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