1

users と work_orders の 2 つのテーブルがあります。ここで、users テーブル フィールドからフィルタリングして work_orders の結果を取得する必要があります。

私の次のクエリは結果を返しませんでした。

SELECT `work_orders`.`id` as id, `work_orders`.`type` as type
     , `work_orders`.`title` as title, `work_orders`.`status` as status
     , `work_orders`.`publish_date` as publish_date
     , `work_orders`.`priority` as priority, `work_orders`.`assigned_to` as assigned_to
     , `work_orders`.`client_id` as client_id, `work_orders`.`due_date` as due_date 
  FROM (`work_orders`) 
  LEFT JOIN `users` 
    ON `users`.`id` = `work_orders`.`assigned_to` 
 WHERE `work_orders`.`status` != 'closed' 
   AND users.manager_id = '143' 
 ORDER BY `work_orders`.`id` DESC 
 LIMIT 30
4

1 に答える 1

0

WHERE 句がすべての結果を除外していますか?

また、特定のユーザーのみに関連する work_orders を表示する場合は、LEFT JOIN を INNER JOIN に変更するか、EXISTS を使用します。

これを試して...

SELECT field1, field2, ...
FROM work_orders
WHERE EXISTS (
    SELECT 1 
    FROM users 
    WHERE  users.id = work_orders.assigned_to 
       AND manager_id='143'
)
于 2012-06-12T21:44:04.633 に答える