Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL选择查询_Php_Mysql_Sql - Fatal编程技术网

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子句”中,但该列存在于该表中。古怪的