每当我尝试对其进行测试时,Dreamweaver中的以下记录集都会引发1052模糊错误。我知道它与dateADDED有关,但不知道如何解决。

    SELECT commentID, commentTitle, commentContent, topicTable.topicTitle,  DAYNAME(dateADDED) as day, MONTHNAME(dateADDED) as month,
DAY(dateADDED) as date, YEAR(dateADDED) as year
FROM commentTable, topicTable
WHERE commentID = colname AND topicTable.topidID = commentTable.topicID


这是表格的布局,

CREATE TABLE userTable
(
userID VARCHAR(15) NOT NULL,
screenName VARCHAR(15) NOT NULL UNIQUE,
userPasswd CHAR(40) NOT NULL,
firstName VARCHAR(15) NOT NULL,
lastName VARCHAR(25) NOT NULL,
dateJoined TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
lastlogin DATETIME,
PRIMARY KEY(userID)
)
;

CREATE TABLE categoryTable
(
categoryID MEDIUMINT AUTO_INCREMENT NOT NULL,
categoryName VARCHAR(30) NOT NULL,
categoryDescription VARCHAR(200) NOT NULL,
PRIMARY KEY (categoryID)
)
;

CREATE TABLE topicTable
(
topicID MEDIUMINT AUTO_INCREMENT NOT NULL,
topicTitle VARCHAR(30) NOT NULL,
userID VARCHAR(15) NOT NULL,
dateAdded TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
categoryID MEDIUMINT NOT NULL,
PRIMARY KEY (topicID)
)
;

CREATE TABLE commentTable
(
commentID MEDIUMINT AUTO_INCREMENT NOT NULL,
commentTitle VARCHAR(30) NOT NULL,
commentContent TEXT NOT NULL,
userID VARCHAR(15) NOT NULL,
dateAdded TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
topicID INT NOT NULL,
PRIMARY KEY (commentID)
)
;

最佳答案

dateADDED在两个表中都有表示,因此您应该从结果集中选择一个:

SELECT ct.commentID
     , ct.commentTitle
     , ct.commentContent
     , tt.topicTitle
     , DAYNAME(ct.dateADDED) as `day`
     , MONTHNAME(ct.dateADDED) as `month`
     , DAY(ct.dateADDED) as `date`
     , YEAR(ct.dateADDED) as `year`
FROM commentTable ct
JOIN topicTable tt ON ct.commentID = tt.colname  AND tt.topidID = ct.topicID


顺便说一句,仍然想知道colname代表什么,也许应该改为ct.userID = tt.userID

关于mysql - 在Dreamweaver中的MySQL记录集中存在歧义错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29871875/

10-09 22:26