昨天我错误地问了一个有错误列名的问题。 这造成了有趣的解决方案。所以我会在这里再次提出同样的问题,但这次我会直接使用mysql dump,所以不会有任何混淆。MYSQL中的动态列名
CREATE TABLE `tbl1` (
`UserID` char(15) DEFAULT NULL,
`col1` char(15) DEFAULT NULL,
`col2` char(15) DEFAULT NULL,
`col3` char(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `tbl2` (
`UserID` char(15) DEFAULT NULL,
`col4` char(15) DEFAULT NULL,
`col5` char(15) DEFAULT NULL,
`col6` char(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO tbl1
(`UserID`, `col1`, `col2`, `col3`)
VALUES
('user1', 'one', 'two', 'three');
INSERT INTO tbl1
(`UserID`, `col1`, `col2`, `col3`)
VALUES
('user1', 'oneone', 'twotwo', 'threethree');
INSERT INTO tbl2
(`UserID`, `col4`, `col5`, `col6`)
VALUES
('user1', 'col4name', 'col5name', 'col6name');
最终结果我查找的样子看起来像这样,在mysql查询之后。
CREATE TABLE `endresult` (
`UserID` char(15) DEFAULT NULL,
`col4name` char(15) DEFAULT NULL,
`col5name` char(15) DEFAULT NULL,
`col6name` char(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
你会看到USER1对下它是由用户1添加为他COL4记录“col4name” tbl2的/她的自定义名称为特定列。现在我希望看到这些自定义列名显示在“endresult”表中。
我知道这将是最好做最后使用PHP来显示,但我真的需要在MySQL端做到这一点。 再次感谢
,我认为这应该工作,但是我的结束,我得到“未知列在 'COL4''字段列表“?任何想法为什么? – Ossi 2009-09-16 02:43:11
在点”WHERE t2.userid = @userId“对查询做了一个小的编辑这曾经是”WHERE t1.userid = @userId“t1不是查询,尝试自行运行select语句(整个SELECT CONCAT业务) – 2009-09-16 02:48:42
它只需要用于单个用户和他的记录...... I希望在这个查询的末尾添加像WHERE user ='user1'这样的东西,如果我能使用它的话 – Ossi 2009-09-16 02:53:06