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

mysql venstre join ikke returnere alle venstre tabel række

I din forespørgsel;

SELECT *
FROM phonetype
LEFT JOIN phone
ON phonetype.phonetypeID=phone.phonetypeID
where phone.peopleID = ?

... HVOR klausul med en betingelse i tabellen længst til højre vil fjerne alle rækker, hvor tabellen længst til højre ikke har nogen værdi, hvilket negerer LEFT JOIN .

Det, du højst sandsynligt ønsker, er at tilføje betingelsen til LEFT JOIN 's ON klausul i stedet, tillader de tomme værdier af telefon for stadig at dukke op;

SELECT *
FROM phonetype
LEFT JOIN phone
  ON phonetype.phonetypeID=phone.phonetypeID
 AND phone.peopleID = ?


  1. Hvordan laver man MySQL + Substring? + udskifte?

  2. FORALL erklæring med VALUES-OF bundet klausul i Oracle-databasen

  3. Sådan opdaterer du MySQL med PHP og AJAX uden at OPDATERE SIDE

  4. offset/limit performance optimering