sql >> Databasteknik >  >> RDS >> Mysql

att hämta data från två tabeller i mysql, join skulle inte fungera här

Om jag har förstått det rätt bör detta göra vad du behöver:

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

Redigera

På din begäran kommer jag att förklara frågan. Den del som förmodligen förvirrar dig är denna underfråga:

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

IF EXISTS säger till MySQL att returnera antingen TRUE eller FALSE om delen omedelbart efter den "finns" (innehåller ett resultat). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 säger helt enkelt till MySQL att hitta en rad i user_specialty där s.id = us.sid (specialitets-ID matchar) och us.uid = '$id' (ID:t är användarens).



  1. PostgreSQL-logganalys med pgBadger

  2. Stäng av varningar och fel på PHP och MySQL

  3. Om klustrade index i postgres

  4. Hur man filtrerar poster med Aggregerad funktion COUNT