Mysql
 sql >> Base de données >  >> RDS >> Mysql

obtenir des données de deux tables dans mysql, join ne fonctionnerait pas ici

Si j'ai bien compris, cela devrait faire ce dont vous avez besoin :

$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.
}

Modifier

À votre demande, je vais continuer et expliquer la requête. La partie qui vous déroute probablement est cette sous-requête :

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

Le IF EXISTS indique à MySQL de renvoyer TRUE ou FALSE si la partie qui le suit immédiatement "existe" (contient un résultat). Le SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 dit simplement à MySQL de trouver une ligne dans user_specialtys.id = us.sid (l'ID de spécialité correspond) et us.uid = '$id' (l'ID est celui de l'utilisateur).