Query bevat een fout

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George van Baasbank

George van Baasbank

24/10/2013 12:28:00
Quote Anchor link
Hallo allemaal,

Ik heb de hieronder getoonde query gemaakt maar die geeft op de velden LABEL en AFBEELDING een NULL terug. De andere twee velden worden juist getoond.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT
   a.id AS relatie,
   a.artiest AS uitvoerende,
   l.label,
   l.afbeelding
FROM
   shop__artiesten AS a
LEFT JOIN
   shop__cd AS c
ON
   a.id = c.uitvoerende
left JOIN
    shop__platenlabel AS l
ON
    c.label = l.afbeelding

GROUP BY
    a.artiest
ORDER BY
   a.artiest ASC


Voeg ik de volgende WHERE toe dan krijg ik helemaal geen output. Het lijkt er dus op dat er iets mis gaat met de JOIN van de tabel shop__platenlabel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT
   a.id AS relatie,
   a.artiest AS uitvoerende,
   l.label,
   l.afbeelding
FROM
   shop__artiesten AS a
LEFT JOIN
   shop__cd AS c
ON
   a.id = c.uitvoerende
left JOIN
    shop__platenlabel AS l
ON
    c.label = l.afbeelding
WHERE
    l.label = 'Tulip'
GROUP BY
    a.artiest
ORDER BY
   a.artiest ASC


Waar zit mijn denkfout?
Gewijzigd op 24/10/2013 12:31:26 door George van Baasbank
 
PHP hulp

PHP hulp

17/11/2024 09:29:55
 
Erwin H

Erwin H

24/10/2013 12:39:47
Quote Anchor link
Lijkt erop alsof je de verkeerde velden pakt voor de joins. c.label = l.afbeelding bijvoorbeeld, terwijl er ook een veld l.label is. Het lijk mij logischer dat het dus c.label = l.label moet zijn. Maar ja, zonder inzicht in je tabellen is er niet meer over te zeggen.
 
George van Baasbank

George van Baasbank

24/10/2013 13:10:16
Quote Anchor link
Even een korte toelichting op de opmerking van Erwin:

tabel shop__artiesten (a)
1. id = het relatienummer van het record << relatieveld -A- >>
2. artiest = naam van de artiest (uitvoerende) << uiteindelijk resultaat >>

tabel shop__cd (c)
1. uitvoerende = relatieveld met (a) id << relatieveld -A- >>
2. label = bestandsnaam afbeelding platenlabel << relatieveld -B- >>

tabel shop__platenlabel (l)
1. afbeelding = bestandsnaam afbeelding platenlabel << relatieveld -B- >>
2. label = naam van het platenlabel << WHERE-veld -C- >>


Toevoeging op 24/10/2013 13:30:37:

Ik heb de query iets anders opgebouwd en nu werkt hij uitstekend:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
select
   c.uitvoerende
from
   shop__platenlabel as l
left join
   shop__cd as c
on
   c.label = l. afbeelding
left join
   shop__artiesten as a
on
   a.id = c.uitvoerende
where
   l.label = 'tulip'
group by
   c.uitvoerende
order by
   c. uitvoerende asc


Waar de oorzaak lag/ligt weet ik niet. Wellicht kan iemand mij dit nog uitleggen
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/10/2013 16:19:46
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
where
    l.label = 'tulip'

Als l links van de left join staat kan l.label NULL zijn, nu zet je hem rechts.
Daarnaast heb je een fout gebruik van group by (nergens een aggegrate functie).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.