PHP/MySQL查询

PHP/MySQL查询,php,mysql,Php,Mysql,基本上,我要做的是从staff表中获取名称,获取每个职务名称的id,然后点击另一个表(基于获取的id),获取我感兴趣的数据 到目前为止,我的方法是进行查询,使用while循环获取我感兴趣的职位的所有id,对于每个id,使用另一个循环(连接查询)减去更多数据。 我认为我的方法是错误的,因为我怀疑我可以将这两个查询合并为一个,但不知道如何合并 //new db connection here... (1) $query="SELECT * FROM staff WHERE jobtitle='$fo

基本上,我要做的是从staff表中获取名称,获取每个职务名称的id,然后点击另一个表(基于获取的id),获取我感兴趣的数据

到目前为止,我的方法是进行查询,使用while循环获取我感兴趣的职位的所有id,对于每个id,使用另一个循环(连接查询)减去更多数据。 我认为我的方法是错误的,因为我怀疑我可以将这两个查询合并为一个,但不知道如何合并

//new db connection here... (1)
$query="SELECT * FROM staff WHERE jobtitle='$forEachJob'";
$result=mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {     
    $idFetched = $row['id'];
    //new db connection here... (2)
    $nextQuery = "SELECT * FROM schedule WHERE name='$idFetched' ORDER BY Day asc";
    $nextResult = mysql_query($nextQuery)
}

您想在mysql中加入:

SELECT * FROM staff
JOIN schedule ON schedule.name = staff.id
WHERE jobtitle = '$forEachJob'
ORDER BY Day ASC

顺便说一句,避免使用SELECT*并查看数据库包装器(如PDO)来清理/准备查询。

小Bobbhydroptables在哪里?我在这里没有看到任何问题。你是在问如何更有效地做这件事吗?我想就是这样,不过我还需要问一件事。因为我在查询中加入了我的表,所以我仍然以$row['name']的格式获取结果。那么,如果这两个表中都存在名称呢?我可以使用$row['staff.name']或$row['schedule.name']吗?更深入地说,如果我必须循环遍历每个staff.id并在schedule表中的数据之间进行比较,单个查询是否仍在讨论中?在我看来,我必须为每个用户进行一次查询。有没有更有效的方法?不一定;听起来你在谈论子句中的