mysql - SQL Checking if a user relationship exist -
i have user relationship table set looks this.
user_relationship
- relationship_id
- requesting_user_id
- requested_user_id
- relationship_type
- relationship_status
now want check relationship see if exist between 2 users lets example ids 1 & 2. a:
select *    user_relationship   (requesting_user_id='1' ,  requested_user_id='2')      || (requesting_user_id='2' ,  requested_user_id='1') but wondering if better faster way this?
ors notoriously bad performers. try union instead:
select a.*    user_relationship  a.requesting_user_id = '1'     , a.requested_user_id = '2' union select b.*    user_relationship b  b.requesting_user_id = '2'     , b.requested_user_id = '1' union remove duplicates; union all not (and faster it).
if there columns coming don't use -- shouldn't in query.
indexing should on:
- requesting_user_id
- requested_user_id
...either separately or single composite index you'll have test know works best.
Comments
Post a Comment