MySQL用户表和帖子表 - 匹配ID

时间:2013-03-17 22:42:27

标签: mysql matching username userid

我对数据库很陌生,所以如果这听起来很傻,我会事先道歉。我正在创建一个模拟微博客网站的基本Web应用程序。我有三张表authorsposts& comments

authors表格描述如下:

aId int(20) NO  PRI NULL    auto_increment
aUser   varchar(30) NO  UNI NULL    
aPass   varchar(40) NO      NULL    
aEmail  varchar(30) NO  UNI NULL    
aBio    mediumtext  YES     NULL    
aReg    datetime    NO      NULL    

posts表如下所述:

pId int(20) NO  PRI NULL    auto_increment
pAuthor int(20) NO  MUL NULL    
pTitle  tinytext    NO      NULL    
pBody   mediumtext  NO      NULL    
pDate   datetime    NO      NULL    

我理解关系的基础知识,但我可以问,如果在我的网络应用程序上我想要显示帖子并包括发布它们的人,有没有办法这样做,所以结果集将显示实际的用户名,而不是比数字ID?每次创建帖子时我都会捕获用户ID,因此创建的每个帖子都是有效的用户ID,而post表记录了创建帖子的用户ID,但是当在select查询中查看帖子时,它会显示数字而不是在authors表中与它们相关联的名称。我们可以使用一个查询来执行此操作或执行此操作,因此当使用select * from authors时,它会显示用户名而不是用户ID。 谢谢你们。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找SQL查询:

SELECT pTitle, pDate, aUser 
FROM posts
LEFT JOIN authors ON aId=pAuthor
ORDER BY pDate DESC

SELECT之后,您告诉MySQL您要查看哪些列,使用LEFT JOIN将表格连接在一起(aIdpAuthor)和{ {1}}你告诉mysql从最新的ORDER BY开始按日期排序(最高日期优先)

pDate DESC

在搜索包含“新闻”标题的帖子时查看作者的姓名,其中包含从最新帖子中排序的“新闻”,如果两个帖子具有相同的时间戳,则按用户名称显示它们(Adam将在Zachariash之前进行)

如果您不需要查看标题,日期和用户名称以外的内容,请使用上面第一个查询中的第一行