0

I'm using php and mysql for making a chat application. I want to use a where condition in both parts of union but this not working my code is :

$Query = "(SELECT u.userid, u.photo, u.username FROM `last_activity` AS la INNER JOIN user AS u ON la.userid = u.userid LEFT join private_chat pc ON u.userid = pc.sender_id WHERE la.last_activity_date BETWEEN '2020-09-21 10:20:00' AND '2020-09-21 10:30:00' AND u.username like '%amit%' ORDER BY pc.created_date DESC) UNION (SELECT userid, photo, username FROM user u LEFT join private_chat pc ON u.userid = pc.sender_id WHERE u.u_type = '2')";

and i want like and this not works

$Query = "(SELECT u.userid, u.photo, u.username FROM `last_activity` AS la INNER JOIN user AS u ON la.userid = u.userid LEFT join private_chat pc ON u.userid = pc.sender_id) UNION (SELECT userid, photo, username FROM user u LEFT join private_chat pc ON u.userid = pc.sender_id ) WHERE la.last_activity_date BETWEEN '2020-09-21 10:20:00' AND '2020-09-21 10:30:00' AND u.u_type = '2' AND u.username like '%amit%' ORDER BY pc.created_date DESC";

1 Answers1

0
SELECT *
FROM 
(
    SELECT u.userid, u.photo, u.username, pc.created_date
    FROM `last_activity` AS la
    INNER JOIN `user` AS u ON la.userid = u.userid
    LEFT JOIN private_chat pc ON u.userid = pc.sender_id
    WHERE la.last_activity_date BETWEEN '2020-09-21 10:20:00' AND '2020-09-21 10:30:00'
        AND u.username LIKE '%amit%' 
        
    UNION ALL
    
    SELECT userid, photo, username, pc.created_date
    FROM `user` u
    LEFT JOIN private_chat pc ON u.userid = pc.sender_id
    WHERE u.u_type = '2'
) a
ORDER BY a.created_date DESC;
Dark Knight
  • 6,116
  • 1
  • 15
  • 37
Aditya Sawant
  • 193
  • 1
  • 3