怀疑MySQL的JOIN类型

时间:2014-01-04 01:48:22

标签: php mysql

我目前正在开发一个基本的Web应用程序(使用MySQLPHP)。它的目标是让我和我的同事(以及在不同部门工作的人)找到,改变和安排工作轮班。我有两张桌子:

  • 用户
  • 位移

使用两个表中的userId列来链接它们。

当用户查找不同的班次时,查询如下:

SELECT 
    s.date, 
    u.lastname, 
    s.shift_to_give, 
    s.seeked_shift,  
    s.notes, 
    s.insert_date
FROM 
   users AS u INNER JOIN shifts AS s 
ON 
   u.userId = s.userId
WHERE
   s.shift_to_give = '$shift_to_give' 
     AND
   (*) u.office = (
        SELECT 
           office 
        FROM 
           users 
        WHERE 
           employee_number = '$employee_number' ) 
     AND
  (**) s.status != '1' 
     AND
    s.date='$date' 
     AND 
 (***) s.userId != (
        SELECT 
           userId 
        FROM 
           users 
        WHERE 
           employee_number = '$employee_number' );

我想要处理的参数是:。

  1. 每个用户显然可以看到与自己办公室有关的轮班请求(员工编号已经与登录会话一起存储。

  2. “状态”列是用于表示已处理的请求的标志

  3. 在搜索模式下,每个用户都看不到自己的请求。

  4. 有了这个陈述,即使我不应该这样做,我也有结果。 (if($r)永远是真的)

    我怎样才能让它正常工作?


    在此查询之后,代码继续如下:

    $ result = mysqli_query($ dbc,$ query);

        if ($result)    // If there are results
        {       
        echo "There are x records found..";
        mysqli_free_result($result);
        mysqli_close($dbc);
        }   
    
        else
        {
        echo "No results :-(";
        }
    

    如果我的查询有任何结果,则会正确显示(通过手动检查数据库)但它永远不会转到“else”语句,即使我查找不存在的内容......相反,我看到一个空白页面。 有什么建议? 同时,感谢到目前为止的回复: - )

0 个答案:

没有答案