sql >> Database >  >> RDS >> Mysql

SQL JOIN veel-op-veel

Het is mogelijk met deze kleine truc (OUTER JOIN op de veel-op-veel-tabel, met de beperking dat de GroupID 3 moet zijn (voor Drama)

http://sqlfiddle.com/#!9/01cf3/1

SELECT elements.ID, elements.Element, groups.Genre
  FROM elements
LEFT OUTER JOIN group_elements
  ON elements.ID = group_elements.ElementID
 AND group_elements.GroupID = 3
LEFT OUTER JOIN groups
  ON group_elements.GroupID = groups.ID

LEFT OUTER JOIN betekent :neem alle regels uit de tabellen die eraan voorafgingen (die aan de LINKERkant van de LEFT OUTER JOIN , als u wilt), zelfs als er geen regels zijn die daarmee overeenkomen in de volgende tabellen. De voorwaarde ON elements.ID = group_elements.ElementID AND group_elements.GroupID = 3 zegt dat als we iets vinden dat overeenkomt met onze ElementID, het ook een drama moet zijn (GroupID =3). We doen dan nog een LEFT OUTER JOIN op de groepstabel, waardoor we de kolom Genre kunnen weergeven, of NULL als het element geen drama was.




  1. TOON DATABASES Equivalent in SQL Server – sp_databases

  2. Subquery in SELECT-instructie (MySQL)

  3. Database:gepipelinede functies

  4. Hoe MySQL-queryresultaten in een andere tabel opslaan?