sql >> Base de Datos >  >> RDS >> Mysql

obtener datos de dos tablas en mysql, unirse no funcionaría aquí

Si he entendido correctamente, esto debería hacer lo que necesita:

$result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
while (list($spec, $checked) = mysql_fetch_array($result)) {
    // Do your outputting here.
}

Editar

De acuerdo con su solicitud, seguiré adelante y explicaré la consulta. La parte que probablemente te confunda es esta subconsulta:

(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))

El IF EXISTS le dice a MySQL que devuelva VERDADERO o FALSO si la parte que le sigue inmediatamente 'existe' (contiene un resultado). El SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 simplemente le dice a MySQL que busque una fila en user_specialty donde s.id = us.sid (el ID de especialidad coincide) y us.uid = '$id' (el ID es el del usuario).