【发布时间】:2012-05-17 06:44:07
【问题描述】:
我目前正在尝试制作一个小型网络服务,只是为了好玩和学习。 (我最近开始实际学习编程。) 该服务就像推特。用户关注他们的朋友并获取他们的状态。
我有一个关于关系数据库的问题。
有 3 个表,分别是 'user'、'friendship' 和 'status'。 下面是描述这些表格的代码。
create table user (
id int unsigned auto_increment primary key,
username varchar(16) not null,
password varchar(255) not null,
created datetime default null
);
create table friendship (
id int unsigned auto_increment primary key,
userid int not null,
friend int not null,
created datetime default null
);
create table status (
id int unsigned auto_increment primary key,
userid int not null,
current_status int not null,
created datetime default null
);
'user.id' 等于 'friendship.userid' 和 'status.userid'。
・情况是;
1,用户登录,会得到他朋友的状态号。
2、php获取用户id,找到好友的userid、username、status和created(ofstatus)。
我尝试了一些 sql 语句,但没有工作。
任何超级 sql 作家都可以告诉我正确的 sql 吗?
干杯!
已编辑 1;
我试过这样的sql;
select userid, username, current_status, created
from status
join users u1
on u1.id = status.userid
join friendship
on friendship.friend = u1.id
join user u2
on u2.id =friendship.userid
where u2.id = "the user's id from php";
和 mysql 抛出这个“#1146 - 表 'Application.user' 不存在。”
【问题讨论】:
-
你应该展示一些你尝试的 SQL。
-
另外,status.current_status 应该是什么?它似乎应该是一个 varchar(是 db 的推文部分)
-
这个问题缺乏研究。没有什么比创建表更重要了。老兄还有很长的路要走。
-
还有一个建议。在您的表中,您有 createdtime,但您将其默认为 NULL。您应该将其默认为当前时间。在 mysql 中,这将使用 CURRENT_TIMESTAMP。
-
错误消息告诉您确切的问题。试试看……
标签: mysql sql database select relational-database