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

at hente data fra to tabeller i mysql, join ville ikke fungere her

Hvis jeg har forstået det rigtigt, burde dette gøre det, du har brug for:

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

Rediger

På din anmodning vil jeg gå videre og forklare forespørgslen. Den del, der sandsynligvis forvirrer dig, er denne underforespørgsel:

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

IF EXISTS fortæller MySQL at returnere enten TRUE eller FALSE, hvis delen umiddelbart efter den 'eksisterer' (indeholder et resultat). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 fortæller blot MySQL at finde en række i user_specialty hvor s.id = us.sid (special-id'et matcher) og us.uid = '$id' (ID'et er brugerens).



  1. Hvordan kan jeg indsætte data i SQL Server ved hjælp af VBNet

  2. Oprettelse af en trigger for underordnet tabelindsættelse returnerer en forvirrende fejl

  3. Hvordan indstiller jeg et standard standardbillede (no_pic.gif) php?

  4. Mysql-variabler fungerer ikke gennem php mysql-forespørgsel