I have two separate SQL queries that I would like to combine to a single one if possible.
Query #1 yields all entries from a table in random order
Query #2 will afterwards check whether or not the result can be used
How can I achieve this in a single step directly in SQL?
Code:
// start with a query for all of the photos, returned in random order
$query = "
SELECT DISTINCT m.mediaID
              , m.description
              , m.path
              , m.alwayson
              , m.usecollfolder
              , m.mediatypeID 
FROM $media_table m
WHERE m.mediatypeID = 'photos' 
ORDER BY RAND();
"; 
$result = mysql_query($query) or die ("$text[cannotexecutequery]: $query");
while( $imgrow = mysql_fetch_assoc( $result ) ) {
    // if the picture is alwayson or we are allowing living to be displayed,
    // we don't need to bother 
    // with any further checking  
    if ($imgrow[alwayson] || $allow_living_db ) { 
    break; 
    // otherwise, let's check for living  
    } else { 
    // this query will return rows of personIDs on the photo that are living  
    $query = "    
    SELECT l.personID 
    FROM $medialinks_table l
    JOIN $people_table p ON l.personID = p.personID 
    WHERE l.mediaID = $imgrow[mediaID] 
    AND p.living = 1
     ";
    $presult = mysql_query($query) or die ("$text[cannotexecutequery]: $query");
    $rows = mysql_num_rows( $presult );
    mysql_free_result( $presult );
    // if no rows are returned, there are no living on the photo, so let's display it  
    if ($rows == 0) {
        break;
    }
}
 
     
    