我的查询只是从3个表中选择。
从评论表中选择文章的所有评论
从UserID表中选择以查找它是哪种用户
如果用户是一种类型,请搜索一个表格... ELSE搜索另一个表格以获取最终信息。
我该怎么做?我对MySQL的东西有点新,所以我非常感谢你的耐心!
PS - 请告诉我这是不是很清楚...
谢谢!
答案 0 :(得分:2)
好的,那么让我们说类型条件是 - 如果用户的类型'foo'搜索表'foovalues'否则搜索表'finalvalues'.... 假设表结构如下
评论 CommentID 用户身份 条款ArticleID
用户 用户身份 用户类型
Declare TestUserType varchar(3);
select * from Comments where ArticleID = <inputid>; //Returns the comments
select TestUserType = UserType from Users where UserID = <inputuser>; //Returns the usertype for a user and assigns it to a variable
if TestUserType = 'foo'
begin
select * from FooValues;
end
else
begin
select * from FinalValues;
end
免责声明:上述SQL应该可以在mySQL中运行,但是因为我在那个数据库上工作已经有一段时间了,我现在无法访问它,所以上面的SQL可能会遇到语法错误。
你也可以把SQL放在一个存储过程中 - 如果你这样做,mySQL有关于你可能想要注意的分隔符的事情 - 我在博客上写了here
答案 1 :(得分:1)
我不会将它们全部放在一个查询中。如果将操作分解为较小的步骤,则代码更具可读性。
如果不考虑性能,您可以先获取用户类型,然后根据类型运行另一个查询。
要获得更正确的方法,您应该考虑使用存储过程。