表1
| Id | ProductName | Is_JAipur | Is_Rajasthan | Is_Nagpur |
|----|-------------|-----------|--------------|-----------|
| 1 | 101 | 0 | 1 | 0 |
| 2 | 102 | 0 | 0 | 1 |
表2
| Id | Name |
|----|-----------|
| 1 | Jaipur |
| 2 | Rajasthan |
| 3 | Nagpur |
表3
| Id | Product | City |
|----|---------|------|
| 1 | 101 | 2 |
| 2 | 102 | 3 |
我想编写一个查询,以便在循环访问Id
列时从table 2
获取table 1
。并插入table 3
。我希望保持这种动态,因为未来城市可能会增加。
答案 0 :(得分:0)
我已经提到了您的表格设计所需的更改。除非你采用这个,否则你将来会遇到更大的问题。
尽管如此,我正在为您提供当前要求的解决方案:
INSERT INTO your_table_3(Product,City)
SELECT
t.ProductName,
your_table_2.Id
FROM
(
SELECT
ProductName,
CASE WHEN is_JAipur = 1 THEN 'Jaipur'
WHEN Is_Rajasthan = 1 THEN 'Rajasthan'
WHEN Is_Nagpur = 1 THEN 'Nagpur' END AS cityName
FROM your_table_1
) AS t
INNER JOIN your_table_2 ON t.cityName = your_table_2.`Name`