2013-08-03 50 views
-1

我有两张桌子。如何使正确的Mysql查询?

一个是“detailtousers”包含有关用户和任何“commenttousers”包含注释信息的信息。

转储由表detailtousers

CREATE TABLE IF NOT EXISTS `detailtousers` (
    `idDetailToUsers` int(11) NOT NULL AUTO_INCREMENT, 
    `DetailToUsersName` varchar(250) NOT NULL, 
    `DetailToUsersEmail` varchar(60) DEFAULT NULL, 
    `DetailToUsersPhone` varchar(150) DEFAULT NULL, 
    `DetailToUsersExpirience` double DEFAULT NULL, 
    `DetailToUsersCity` int(11) NOT NULL, 
    `DetailToUsersCountry` int(11) NOT NULL, 
    `DetailToUsersSite` varchar(45) DEFAULT NULL, 
    `DetailToUsersAge` int(11) DEFAULT NULL, 
    `DetailToUsersSex` int(11) NOT NULL, 
    `DetailToUsersPhoto` varchar(150) DEFAULT NULL, 
    `DetailToUsersToMF` int(11) DEFAULT NULL, 
    `DetailToUsersFB` varchar(150) DEFAULT NULL, 
    `DetailToUsersTW` varchar(150) DEFAULT NULL, 
    `DetailToUsersYTB` varchar(150) DEFAULT NULL, 
    `DetailToUsersVIP` int(11) DEFAULT '0', 
    `DetailToUsersPalata` int(11) DEFAULT NULL, 
    `DetailToUsersHide` int(11) DEFAULT NULL, 
    PRIMARY KEY (`idDetailToUsers`), 
    UNIQUE KEY `idDetailToUsers_UNIQUE` (`idDetailToUsers`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 

转储由表:commenttousers

CREATE TABLE IF NOT EXISTS `commenttousers` (
    `idCommentToUsers` int(11) NOT NULL AUTO_INCREMENT, 
    `CommentToUsersTime` int(11) NOT NULL, 
    `CommentToUsersIdUser` int(11) NOT NULL, 
    `CommentToUsersComment` text NOT NULL, 
    `CommentToUsersStatus` int(11) NOT NULL, 
    `CommentToUsersIdToUser` int(11) DEFAULT NULL, 
    PRIMARY KEY (`idCommentToUsers`), 
    UNIQUE KEY `idCommentToUsers_UNIQUE` (`idCommentToUsers`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; 

我想选择所有的意见,并得到字段:DetailToUsersNameCommentToUsersCommentCommentToUsersIdToUser,CommentToUsersIdUser,C * ommentToUsersTime *。

注意事项,请以现场CommentToUsersIdUserCommentToUsersIdToUser 从外地CommentToUsersIdToUser我希望得到的用户是谁留下评论,我必须重新连接表的名称。

现在我试图这样做:

SELECT `*s` FROM (`commenttousers`) LEFT JOIN `detailtousers` ON `detailtousers`.`idDetailToUsers` = `commenttousers`.`CommentToUsersIdToUser` LIMIT 5 

所以,它给了我,我需要,但我不能得到信息关于该用户留下评论。 (她的名字来自表detailtousers) 请你帮我解决问题。

+1

你能解释一下,为什么我的文章给了-1分?谁在这里很聪明?我问这个问题似乎是正确的 – Oleg

+0

出于好奇,你在'DetailToUsersName'或'DetailToUsersEmail'存储什么样的信息?或者'DetailToUsersName'简单的实际'username'? – Prix

+0

还没有读过你的问题,但你的头衔非常蹩脚。我也被诱惑到-1。它没有说任何话,但也表明这个问题也会跛脚。 – TMS

回答

1

如果我正确理解你的问题,你应该再次加入detailtousers表以获得这两个用户的详细信息。

SELECT a.*, /*select necessary fields from comments*/ 
b.DetailToUsersName, /*select necessary details about users*/ 
c.DetailToUsersName /*select necessary details about users*/ 
    FROM commenttousers a 
     INNER JOIN detailtousers b 
      ON b.idDetailToUsers = a.CommentToUsersIdToUser 
     INNER JOIN detailtousers c 
      ON c.idDetailToUsers = a.CommentToUsersIdUser 
LIMIT 5;