Mysql
 sql >> Database >  >> RDS >> Mysql

ottenere dati da due tabelle in mysql, join non funzionerebbe qui

Se ho capito bene, questo dovrebbe fare ciò di cui hai bisogno:

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

Modifica

In base alla tua richiesta, andrò avanti e spiegherò la domanda. La parte che probabilmente ti confonde è questa sottoquery:

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

Il IF EXISTS dice a MySQL di restituire TRUE o FALSE se la parte immediatamente successiva "esiste" (contiene un risultato). Il SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 dice semplicemente a MySQL di trovare una riga in user_specialty dove s.id = us.sid (l'ID specialità corrisponde) e us.uid = '$id' (l'ID è dell'utente).