www.webdeveloper.com
Results 1 to 3 of 3

Thread: Count queries in UNION ALL

Hybrid View

  1. #1
    Join Date
    Aug 2013
    Posts
    2

    Question Count queries in UNION ALL

    Hi,

    before I begin I wanted to let you know that I do not have a lot of SQL-experience, yet.

    I got this query:


    Code:
    $requests_q = mysql_query("
    	
    	SELECT COUNT (*) FROM (
    		SELECT count(*) AS cnt, ava_users.*, 0 AS ord
    		      FROM ava_friend_requests
    		      LEFT JOIN ava_users 
    		      ON ava_friend_requests.from_user = ava_users.id
    		      WHERE ava_friend_requests.to_user = $user[id]
    		      
    		      UNION ALL
    		      
    		SELECT count(*), ava_users.*, 1 AS ord
    		      FROM ava_friends
    		      LEFT JOIN ava_users 
    		      ON ava_friends.user2 = ava_users.id
    		      WHERE ava_friends.user1 = $user[id]
    		)
    		
    	GROUP BY ava_users.id
    	ORDER BY ord
    	LIMIT $from, $display_num");
    What I'd like to know is how do you get a count for a SINGLE query (in this case the top one) when you're using UNION ALL? Also I'd like to know how do you get the complete number of rows when you're using a UNION ALL?

    The code I posted above has bugs. I know that because in my sample database there a 6 entries and it shows me 5. I need a UNION because it is important for a pagination system.

    Please - any help? Thank you so much!

  2. #2
    Join Date
    Sep 2011
    Posts
    60
    after fix your query
    as
    $requests_q = mysql_query("

    SELECT cnt, id, ord FROM (
    SELECT count(*) AS cnt, ava_users.*, 0 AS ord
    FROM ava_friend_requests
    LEFT JOIN ava_users
    ON ava_friend_requests.from_user = ava_users.id
    WHERE ava_friend_requests.to_user = $user[id]

    UNION ALL

    SELECT count(*), ava_users.*, 1 AS ord
    FROM ava_friends
    LEFT JOIN ava_users
    ON ava_friends.user2 = ava_users.id
    WHERE ava_friends.user1 = $user[id]
    )

    GROUP BY ava_users.id, ord
    ORDER BY ord
    LIMIT $from, $display_num");

    it should return you all rows even if you will use just union (not union all) because ord value different in first and second queries.

  3. #3
    Join Date
    Aug 2013
    Posts
    2
    Doesn't work.

    When I use it I get this error message:

    Code:
    [19-Aug-2013 00:16:28 Europe/Berlin] PHP Warning:  mysql_num_rows() expects parameter 1 to be resource, boolean given in /Users/***/Documents/Arcades/Arc_development/arc_projects/***/arc_dev_website/arc_offline/includes/profile/ajax/friends.php on line 70

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles