Ik was net bezig met het in elkaar draaien van een SQL-query. Sinds mijn afstuderen een paar jaar geleden is dat voor mij geen dagelijkse kost meer, dus ik merkte dat mijn kennis een beetje stoffig is. Het probleem dat ik heb is prima met een workaround op te lossen, alleen ik kan het niet hebben dat het me niet in één query lukt. Goed, dat was de disclaimer, nu het echte verhaal 
Ik heb een database met daarin kalenderitems en artiesten. Een kalenderitems kan gekoppeld zijn aan 0 of meerdere artiesten. Dit heb ik opgelost volgens het boekje, met een koppeltabel dus. Nu heb ik een pagina met daarop de info van een kalenderitem en daarin wil ik een lijst hebben van alle artiesten met checkboxes erachter. Als de artiest gekoppeld is aan het huidige kalenderitem, dan moet de checkbox aangevinkt zijn.
Wat ik nu dus nodig heb is een query die mij de id's en namen van alle artiesten teruggeeft mét een vlaggetje waaraan ik kan zien of de artiest gekoppeld is aan het huidige kalenderitem. En dat krijg ik dus niet voor elkaar. Ik dacht er te zijn met onderstaande query, maar de oplettende lezer zal zien dat dit niet gaat werken:
De output die ik wil hebben is zoiets:
Kan iemand mij een stapje richting de oplossing helpen?
Nogmaals: het gaat me niet om de oplossing van mijn probleem, maar ik wil gewoon mijn SQL-skills even een kleine boost geven!
Ik heb een database met daarin kalenderitems en artiesten. Een kalenderitems kan gekoppeld zijn aan 0 of meerdere artiesten. Dit heb ik opgelost volgens het boekje, met een koppeltabel dus. Nu heb ik een pagina met daarop de info van een kalenderitem en daarin wil ik een lijst hebben van alle artiesten met checkboxes erachter. Als de artiest gekoppeld is aan het huidige kalenderitem, dan moet de checkbox aangevinkt zijn.
Wat ik nu dus nodig heb is een query die mij de id's en namen van alle artiesten teruggeeft mét een vlaggetje waaraan ik kan zien of de artiest gekoppeld is aan het huidige kalenderitem. En dat krijg ik dus niet voor elkaar. Ik dacht er te zijn met onderstaande query, maar de oplettende lezer zal zien dat dit niet gaat werken:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| SELECT id, title, calendaritem_id FROM artist a LEFT JOIN calendaritem__artist c ON a.id = c.artist_id WHERE calendaritem_id = 2 GROUP BY id ORDER BY title |
De output die ik wil hebben is zoiets:
artist_id | artist_title | is_linked |
1 | The Beatles | 1 |
2 | Lily Allen | 0 |
3 | Beppie Kraft | 1 |
4 | Robbie Williams | 0 |
Kan iemand mij een stapje richting de oplossing helpen?
Nogmaals: het gaat me niet om de oplossing van mijn probleem, maar ik wil gewoon mijn SQL-skills even een kleine boost geven!