【发布时间】:2014-01-10 05:43:40
【问题描述】:
我在数据库中有 2 个表。
表 1:用户 id, name, email, password, singleCourse, userType,
表 2:用户课程 id, fk_user_id, course_name
userType 可以是 1 或 2。
现在如果 userType = 1
继续从用户表中获取。
如果 userType = 2
从包含多条记录的 userCourses 表中获取。
在查询逻辑方面需要帮助。
除非有需要,否则查询不应从 userCourses 表中获取记录。
可以使用 CASE WHEN THEN 来完成吗?
这是我尝试过的:
$query = mysql_query("SELECT name.user,email.user,password.user,userType.user,
fk_user_id.course,course_name.course
FROM CASE userType.user WHEN 1 THEN FROM users.u
WHEN 2 THEN users.user INNER JOIN userCourses.course
ON (user.id = userCourses.fk_user_id)");
样本数据:
用户课程
1, John, john@test.com, 123456, 1, PHP
2, Nick, nick@test.com, 654321, 2, ''
用户课程:
1, 2, JAVASCRIPT
2, 2, C++
3, 2, Jquery
所需的输出:
我只是想获取用户课程,但使用所需的表,如果 usertype = 1,查询不应该转到另一个表来检查记录
【问题讨论】:
-
我试过 CASE 但我没有得到语法
-
你能告诉我们一些你试过的代码吗?
-
至少提供样本数据和期望的输出
-
好的,我提供查询
-
@peterm 请查看我的帖子