Cita: Tengo 2 tablas, una con usuarios (tblusuario) y otra en la que guardo si los usuarios son amigos ( tblcontactos, con un id, otro campo con el nombre del usuario, y otro campo con el nombre del otro usuario "usuario AMIGO" ) . Si no existe esa relacion sería porque no son amigos.
Entonces quiero un select para sacar TODOS los usuarios(tblusuario) que haya en la BD ( pudiendo filtrar por nombre, ej: LIKE 'da%' ) y que ademas me diga si es mi amigo o no. Por eso pensaba utilizar 2 select en una, como escribí en el primer mensaje.
Mira, con lo primero ya se vuelve evidente cómo debería ser la consulta, y es básicamente como te la planteo, pero con algún agregado:
Código MySQL:
Ver original U.strUsuario,
U.intFutbol7,
U.intFutbol11,
U.intFutbolSala,
U.intRunning,
U.intCiclismo,
U.intFitness,
U.intBaloncesto,
U.intPadel,
IF(A.strAmigos
IS NULL, 'No Amigo', 'Amigo') amigo
Eso devuelve a todos los usuarios, indicando en la última columna si no son amigos.
O bien puedes filtrar sólo aquellos que no son amigos:
Código MySQL:
Ver original U.strUsuario,
U.intFutbol7,
U.intFutbol11,
U.intFutbolSala,
U.intRunning,
U.intCiclismo,
U.intFitness,
U.intBaloncesto,
U.intPadel,
IFNULL(A.strAmigos
, 'No Amigo') amigo
O bien, si quieres sólo los que lo son:
Código MySQL:
Ver original U.strUsuario,
U.intFutbol7,
U.intFutbol11,
U.intFutbolSala,
U.intRunning,
U.intCiclismo,
U.intFitness,
U.intBaloncesto,
U.intPadel
A.strAmigos = 'valorbuscado'
Si además quieres agregar todas las otras condicioens, te conviene ponerlas como condicionales, ya que no sabemos de entrada cuáles tienen datos y cuáles no:
Código MySQL:
Ver original U.strUsuario,
U.intFutbol7,
U.intFutbol11,
U.intFutbolSala,
U.intRunning,
U.intCiclismo,
U.intFitness,
U.intBaloncesto,
U.intPadel
A.strAmigos = 'valorbuscado'
Un tip final: Trata de no usar LIKE tan indiscriminadamente. Es una de las cláusulas más destructoras de performance, porque puede terminar obligando al MYSQL a revisar toda la tabla (full table scan)... lo cual es una de la peores formas de consulta posible.