我回答了我之前的问题,它有很大帮助,但现在它变得有点复杂。
我有以下表格:
Table: item
item_ID item_Name item_CLass
7 T-100 1
8 T-200 1
9 T-300 1
10 C-100 2
13 C-200 2
17 I-100 3
项目表的Item_Class连接到item_Class表中的 ID
Table: item_Class
item_Class_ID item_Class_Name
1 Pipe
2 Cable
3 Instrument
Table: activities
m_ID m_Name
1 Test 1
2 Test 2
3 Test 3
4 Test 4
然后我有一个中间的桌子
Table: cmc
item_Class_ID m_ID
1 1
1 2
1 3
2 3
2 4
2 5
2 6
3 1
3 5
4 6
INSERT INTO `mt` (`item_ID`, `m_ID`, `mt_status`)
SELECT i.item_ID, c.m_ID, 'open'
FROM (SELECT i.*, row_number() OVER (ORDER BY `item_ID`) as seqnum FROM `item` i)
i JOIN (SELECT c.*, row_number() OVER (ORDER BY `item_Class_ID`)as seqnum FROM cmc c )
c ON i.seqnum = c.seqnum;
我试过这个,但没有得到我期望的。
我期待什么:
ITEM mID mt_status
7 1 open
7 2 open
7 3 open
8 1 open
8 2 open
8 3 open
9 1 open
9 2 open
9 3 open
10 3 open
10 4 open
10 5 open
10 6 open
13 3 open
13 4 open
13 5 open
13 6 open
17 1 open
17 5 open
但我只得到了这个:
ITEM mID mt_status
7 1 open
8 2 open
9 3 open
10 6 open
13 3 open
17 4 open
我错过了什么?
提前感谢任何帮助。
如果我理解正确,这是项目和cmc
之间的join
:
select i.item, cmc.mid, 'open'
from items i join
cmc
on i.item_CLass = cmc.item_CLass