Jump to content

query fail


unemployment

Recommended Posts

For some reason my order by doesn't work.  Do you know why?

 

$sql  = "(
		SELECT
			`users`.`firstname`,
			`users`.`lastname`,
			`users`.`username`,
			`users`.`accounttype`,
			`current`.`total` AS `total_a`,
			`friend`.`total` AS `total_b`
		FROM `partners`
		INNER JOIN `users`
		ON `partners`.`user_id` = `users`.`id`
		LEFT JOIN (
			SELECT
				`user_id` AS `uid`,
				COUNT(`partner_id`) AS `total`
			FROM `partners`
			WHERE `approved` = 1
			GROUP BY `user_id`
		) AS `current`
		ON `partners`.`user_id` = `current`.`uid`
		LEFT JOIN (
			SELECT
				`friend_id` AS `uid`,
				COUNT(`partner_id`) AS `total`
			FROM `partners`
			WHERE `approved` = 1
			GROUP BY `friend_id`
		) AS `friend`
		ON `partners`.`user_id` = `friend`.`uid`
		WHERE `partners`.`friend_id` = {$uid}
		AND `approved` = 1
		ORDER BY `users`.`lastname`
	)
	UNION ALL
	(
		SELECT
			`users`.`firstname`,
			`users`.`lastname`,
			`users`.`username`,
			`users`.`accounttype`,
			`current`.`total` AS `total_a`,
			`friend`.`total` AS `total_b`
		FROM `partners`
		INNER JOIN `users`
		ON `partners`.`friend_id` = `users`.`id`
		LEFT JOIN (
			SELECT
				`user_id` AS `uid`,
				COUNT(`partner_id`) AS `total`
			FROM `partners`
			WHERE `approved` = 1
			GROUP BY `user_id`
		) AS `current`
		ON `partners`.`friend_id` = `current`.`uid`
		LEFT JOIN (
			SELECT
				`friend_id` AS `uid`,
				COUNT(`partner_id`) AS `total`
			FROM `partners`
			WHERE `approved` = 1
			GROUP BY `friend_id`
		) AS `friend`
		ON `partners`.`friend_id` = `friend`.`uid`
		WHERE `partners`.`user_id` = {$uid}
		AND `approved` = 1
		ORDER BY `users`.`lastname`
	)";

Link to comment
https://forums.phpfreaks.com/topic/232750-query-fail/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.