Reputation: 23
I had a quick question on how to return a certain value from a column after using the MAX() function on a different column. For instance, I am trying to return the full name of the comedian depending on who has the highest number of videos posted on youtube. I am able to get the number of videos posted but I am having trouble returning the name. "countc" is the column keeping track of how many youtube videos a comedian has posted. I am using PHPMyAdmin.
<?php
session_start();
$con = mysqli_connect('localhost','root','') or die("Could not connect");
mysqli_select_db($con, 'youtube') or die(mysqli_error($con));
$output = '';
$query = " SELECT fullname FROM comedian WHERE MAX(countc) AS vidcount ";
$query_result = mysqli_query($con, $query);
if($query_result)
{
while($row = mysqli_fetch_assoc($query_result))
{
$output = "The comedian with the most videos is"." ".$row['vidcount'];
}
echo $output;
}
else{
$output = "Could not find top comedian.";
echo $output;
}
Upvotes: 0
Views: 42
Reputation: 835
You can use sub query like following :
SELECT fullname FROM comedian WHERE countc = (SELECT MAX(countc) FROM comedian);
Upvotes: 1
Reputation: 5119
When I get you right you want to order your comedians by the highest number of posted YouTube videos.
Try the following ...
SELECT fullname, countc FROM comedian ORDER BY countc DESC
If you want to limit the result to the number of resultsets you want to have, just append a LIMIT
to your query.
SELECT fullname, countc FROM comedian ORDER BY countc DESC LIMIT 1
The above shown example limits the result to a single resultset.
Upvotes: 1