开发者

where clause in inner join query

please help me out regarding this query:

function viewServices($userpno)
{
    echo $userpno;

    $this->query = "
SELECT task.employee_id , task.user_id , task.service_id, service.name AS servicename ,
       service.description AS servicedescription, employee.name AS employeename, employee.pic_path AS employeepicture,
       employee.pic_path 
FROM task where task.user_id = '开发者_StackOverflow社区$userpno' 
INNER JOIN employee ON employee.pno = task.employee_id
INNER JOIN user ON user.pno = task.user_id
INNER JOIN service ON service.service_id = task.service_id
";
}

The query works perfectly without:

WHERE task.user_id = '$userpno'

I have tried in this way also:

WHERE task.user_id = $userpno

But it doesn't work.

The error is:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\admin\classes\Task.php on line 22

Please quide me about how can I put WHERE clause.


WHERE clause goes at the end of the query

SELECT task.employee_id , task.user_id , task.service_id, service.name AS servicename ,service.description AS servicedescription, employee.name AS employeename, employee.pic_path AS employeepicture,employee.pic_path
FROM task
INNER JOIN employee  ON employee.pno = task.employee_id 
INNER JOIN user  ON user.pno = task.user_id
INNER JOIN service  ON service.service_id = task.service_id 
where task.user_id = '$userpno'


Query structure is: SELECT, FROM (joins here), WHERE

you had the WHERE too soon

$this->query = 
   "SELECT task.employee_id , task.user_id , task.service_id, service.name AS servicename ,service.description AS servicedescription, employee.name AS employeename, employee.pic_path AS employeepicture,employee.pic_path 
    FROM task INNER JOIN employee  ON employee.pno = task.employee_id  INNER JOIN user  ON user.pno = task.user_id INNER JOIN service  ON service.service_id = task.service_id 
    WHERE task.user_id = '$userpno'";

Queries that run correctly return a resource, those that fail return false


Try:

$this->query = "SELECT task.employee_id , task.user_id , task.service_id,
service.name AS servicename ,service.description AS servicedescription, 
employee.name AS employeename, employee.pic_path AS employeepicture,employee.pic_path
FROM task 
INNER JOIN employee  ON employee.pno = task.employee_id  
INNER JOIN user  ON user.pno = task.user_id 
INNER JOIN service  ON service.service_id = task.service_id 
where task.user_id = '$userpno'";


You have JOIN clauses after your WHERE clause. That's not valid, so your query is returning false because it failed.

For reference, parts of a SELECT query must be in the order/format as outlined in the docs here: http://dev.mysql.com/doc/refman/5.0/en/select.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜