sql >> Database >  >> RDS >> Mysql

gegevens ophalen uit twee tabellen in mysql, join zou hier niet werken

Als ik het goed heb begrepen, zou dit moeten doen wat je nodig hebt:

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

Bewerken

Op uw verzoek zal ik de vraag toelichten. Het deel dat u waarschijnlijk in verwarring brengt, is deze subquery:

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

De IF EXISTS vertelt MySQL om TRUE of FALSE te retourneren als het gedeelte dat er direct op volgt 'bestaat' (bevat een resultaat). De SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 vertelt MySQL eenvoudig om een ​​rij op te zoeken in user_specialty waar s.id = us.sid (de speciale ID komt overeen) en us.uid = '$id' (de ID is van de gebruiker).



  1. Meerdere buitenlandse sleutels?

  2. Hoe SEC_TO_TIME() werkt in MariaDB

  3. Hoe CONV() werkt in MariaDB

  4. MySQL-queryoptimalisatie - innerlijke query's