我的数据库中有两个标签:
users - userID(primary key), username, password
courses - id(primary key), name, text
subscriptions - id(primary key), curso_id, user_id
在订阅表中我正在写用户ID在>内user_id,他订阅了curso_id的课程的id,所以subscrption数据库中的结果就像
subscribtions table:
id user_id curso_id
1 12 1
2 5 1
3 12 2
4 6 7
这是用户表:
users table
userID username password
1 user1 passw1
2
3
4
这是课程表:
course table:
id course_name descriotion
1 course one text
2
3
我的问题是如何创建一个首先通过$row['id']
选择课程的sql Query,它指示来自courses数据库的id变量,然后根据第3个表订阅列出所有订阅的用户到这个课程号码。 ?
,第二个问题是如何列出
选择的课程的订阅用户数$row['id']
这是我现在拥有的某种alghorytm逻辑
SELECT * FROM users WHERE id=5.courses(select from the database 'courses') AND 5-> SELECT ALL FROM table subscriptions user_id equal to id from table users
答案 0 :(得分:0)
不确定我是否理解你想要实现的目标,但是如果你想要一个列表,向每个课程中的每个用户显示课程名称并按课程名称排序,那么这应该成交。
select t1.*, t2.*, t3.* from users as t1, courses as t2, subscriptions as t3 where t3.user_id = t1.userID and t3.curso_id = t2.id order by t2.id
这不是最好的方法,从性能方面来看,我建议把它放在几个语句中,因为连接通常很慢。
答案 1 :(得分:0)
好吧我找到了方法,这里是mysql查询:
FROM users
INNER JOIN subscriptions
ON users.userID = subscriptions.user_id
WHERE subscriptions.curso_id = $ids"