Php SQL选择查询
我目前有以下表格:Php SQL选择查询,php,mysql,sql,Php,Mysql,Sql,我目前有以下表格: assignments(assignment_id, module_id, year, semester, title, number, weighting) module(module_id, code, name, crn, course_title) usermodule(usermodule_id, user_id, module_id) users(user_id, title, first_name, last_name) 我想知道是否有人可以根据模块id为我提
assignments(assignment_id, module_id, year, semester, title, number, weighting)
module(module_id, code, name, crn, course_title)
usermodule(usermodule_id, user_id, module_id)
users(user_id, title, first_name, last_name)
我想知道是否有人可以根据模块id为我提供如何获得讲师姓名的指导
到目前为止,我已经想到:
SELECT `first_name` FROM `users` WHERE `assignments.module_id` = '$module_id';
我想我可能需要做某种形式的连接查询…试试下面的sql
SELECT `first_name` FROM `users` WHERE user_id = (select user_id from usermodule where module_id = '$module_id' limit 1))
怎么样
SELECT `first_name`
FROM `users` u INNER JOIN
`usermodule` um ON u.user_id = um.user_id
WHERE `um.module_id` = '$module_id';
请尝试此查询
SELECT u.first_name FROM users u
LEFT JOIN usermodule um ON um.user_id = u.user_id
WHERE um.module_id = '$module_id';
试试rhis:
SELECT `first_name` FROM
`users` INNER JOIN `usermodule` ON `users.user_id`=`usermodule.user_id`
INNER JOIN `assignments` ON `usermodule.module_id` =`assignments.module_id`
WHERE `assignments.module_id` = '$module_id';
我发现你的数据库结构很差 您不一定需要TableUserModule来创建其他表之间的关系 如果用户和模块之间存在关系 使用外键 您可以在模块中使用用户id将用户链接到给定模块,然后在分配中使用“模块id”将给定分配链接到模块,这样最终,用户、模块和分配是相关的
然后就可以很容易地使用联接或简单选择查询了讲师在哪里?它是UserModule表中的用户id吗?如果是多对多关系,您如何知道哪一个是讲师?1242-子查询返回多行这是我在phpMyAdmin SQL中尝试时遇到的错误:/try this:SELECT first_name FROM users WHERE user_id=SELECT user_id FROM usermodule WHERE module_id=“$module_id”limit 1我不想将结果限制为1。我想获得讲师编写的所有作业。此查询不限于仅用于子查询限制的一条记录。我想我需要一个usermodule表,因为用户与其模块之间存在多对多关系?1054-未知列“assignments.module_id”在“where子句”中,但该列存在于该表中。古怪的