sql >> Databáze >  >> RDS >> Mysql

získávání dat ze dvou tabulek v mysql, spojení by zde nefungovalo

Pokud jsem to správně pochopil, mělo by to dělat to, co potřebujete:

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

Upravit

Na vaši žádost vysvětlím dotaz. Část, která vás pravděpodobně mate, je tento dílčí dotaz:

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

IF EXISTS říká MySQL, aby vrátilo buď PRAVDA, nebo NEPRAVDA, pokud část bezprostředně následující za ní 'existuje' (obsahuje výsledek). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 jednoduše řekne MySQL, aby našlo řádek v user_specialty kde s.id = us.sid (ID speciality se shoduje) a us.uid = '$id' (ID je uživatelem).



  1. Proč SQLSTATE[HY000]:Obecná chyba?

  2. Odstraňování HTML tagů v PostgreSQL

  3. Porovnávání objektů podle hodnoty. Část 6:Implementace rovnosti struktur

  4. SQL:AKTUALIZACE z komplexního výběru