表1(tab1)
row1: user1 id1 0
row2: user1 id2 rid1
row3: user2 id3 rid1
row4: user3 id4 0
row5: user4 id5 rid4
row6: user5 id6 rid0
row7: user1 id7 rid4
其中
- user, id, rid 是数字
- 仅 id 是 unique 的
- 任一 id 不等值于 0
- rid1 等值于 id1,rid4 等值于 id4
- rid0 对应的 id 不在 tab1 的 id 范围内
怎么写 mysql 的命令行命令来产生表2?
表2(tab2)
列1 列2
row1: user1 user1
row2: user1 user2
row3: user3 user4
row4: user4 user1
在你们看帖的此时我在谷歌着…
1
ETiV 2014-08-09 04:19:12 +08:00 1
tab2.row4 是否应该是 "user3 user1"
-- create CREATE TABLE `tab1` ( `idx` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(11) NOT NULL DEFAULT '', `rel` int(11) NOT NULL, PRIMARY KEY (`idx`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- insert INSERT INTO `tab1` (`idx`, `name`, `rel`) VALUES (1, 'user1', 0), (2, 'user1', 1), (3, 'user2', 1), (4, 'user3', 0), (5, 'user4', 4), (6, 'user5', 999), (7, 'user1', 4); -- query SELECT tab1.name, tab_.name FROM tab1 JOIN tab1 AS tab_ ON tab_.rel = tab1.idx; 结果就是: user1 user1 user1 user2 user3 user4 user3 user1 |