A ver si he entendido bien, el problema es que solo quieres hacer una consulta a mysql, pero sin embargo tienes 3 tablas. Es imposible sacar resultados de 3 tablas con una sola consulta.
Yo en tu lugar, lo que haría es guardar todos los datos en la tabla "PRINCIPAL", por ejemplo:
PRINCIPAL: id, visitas, titulo, descripcion,
URL, vista_previa, tipo, fecha
Ahora pra diferenciar esta foto lo que haría es un separador que me diga si es foto y video y luego separarlo con "explode" en PHP, por ejemplo:
Si es foto guardaría en el campo URL:
foto|direccionfoto.jpg
Si es video guardaría en el campo:
video|http://yotubeembed.com
Despues al extrarlo en la consulta con explode comparas si es video o foto:
Código PHP:
$separar = explode("|",$array['URL']);
if($separar[0] == "foto"){
$mostrar = '<img src="'.$separar[1].'">';
}else{
$mostrar = '<youtube embed="'.$separar[1].'" width="500" height="500"'>; //El código de youtube
}
Despúes para mostrar en la página
Código PHP:
<table>
<tr>
<td>
<? echo $mostrar; ?>
</td>
</tr>
</table>
No sé si es algo así lo que estás buscando, ya tendría que adaptarlo a tus datos y tu tabla HTML