Query werkt niet :P

Gestart doorOne2xs25 reacties42 weergaven

26 berichten · pagina 1 van 2

One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Ik heb dit (Query uitlijning is misschien beetje anders)

SELECT
                                                badge_id,
                                                (
                                                    SELECT value FROM aa_text WHERE naam = badge_name_@badge_id LIMIT 1
                                                ) AS badge_name,
                                                (
                                                    SELECT value FROM aa_text WHERE naam = badge_desc_@badge_id LIMIT 1
                                                ) AS badge_desc
                                            FROM
                                                aa_shop_badges


En badge_desc / badge_name bestaat dan wel alleen is leeg

Ik denk dat het hieraan ligt: naam = badge_name_@badge_id
Alleen als ik + @badge_id etc doe werkt het niet

Dus weet iemand hoe het wel moet? biggrin
- Niels
0
Berichten
21
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik denk dat de fout zit in het deel van:

SELECT value FROM


VALUE is namelijk ook een statement van MySql,
Probeer dit eens:

SELECT `value` FROM
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Uberdude schreef:
Ik denk dat de fout zit in het deel van:

SELECT value FROM
VALUE is namelijk ook een statement van MySql,
Probeer dit eens:

SELECT `value` FROM


Ook al geprobeerd maar dit werkt helaas niet
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Wat is die badge_name_@badge_id dan?
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
@badge_id moet die value zijn van de badge die zojuist is opgehaald (in dit geval is er 1 badge ADM)

Dus dan moet de subquery voor de naam dit worden:

SELECT value FROM aa_text WHERE naam = badge_name_ADM LIMIT 1
0
Fass

Lid

Berichten
3.771
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Misschien klikt het afgezaagd, maar heb je al geprobeerd twee queries te runnen..?
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Fassdfds schreef:
Misschien klikt het afgezaagd, maar heb je al geprobeerd twee queries te runnen..?
Dat wil hij juist niet, anders zou hij geen subquerys maken smile Of heb ik het verkeerd?
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Shahiem schreef:
Eerdere citaten tonen
Fassdfds schreef:
Misschien klikt het afgezaagd, maar heb je al geprobeerd twee queries te runnen..?
Dat wil hij juist niet, anders zou hij geen subquerys maken smile Of heb ik het verkeerd?
Inderdaad
Want als er rond de 10 badges zijn dan worden het dus 21 querys emo (1 query voor badges en bij elke badge 2 voor data)

Edit:
Als ik de query in PMA uitvoer dan zijn de waardes van badge_name en badge_desc NULL
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Kun je de data in de tabel dan niet zo maken dat je naam = badge_id krijgt?
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Luukvdo schreef:
Kun je de data in de tabel dan niet zo maken dat je naam = badge_id krijgt?
Je bedoeld dat ik badge_name enzo al in de aa_shop_badges zet?
Nee dit is niet handig omdat de andere tabel aa_text waar de data uit wordt gehaald soms geupdate wordt etc.
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik bedoel eigenlijk dat je niet dit hebt:

WHERE naam = badge_name_@badge_id


maar dit:

WHERE naam = badge_id


Dus die badge_name_ uit de data zodat je alleen op de value van badge_id selecteerd
0
One2xs

Bot · Topicstarter

Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Nee dit kan niet want in de database staat het dus echt badge_name_BADEID
0
Fass

Lid

Berichten
3.771
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Probeer dit eens:

SELECT
  badge_id,
  (
    SELECT value FROM aa_text WHERE naam = badge_desc_ + aa_shop_badges.badge_id LIMIT 1
  ) AS badge_name,
  (
    SELECT value FROM aa_text WHERE naam = badge_desc_ + aa_shop_badges.badge_id LIMIT 1
  ) AS badge_desc
FROM
  aa_shop_badges


En het kan ook 100x sneller, zonder subqueries:

SELECT b.badge_id, a.value, a.value
FROM aa_text a, aa_shop_badges b
WHERE a.naam = badge_desc_ + b.badge_id
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nielsie schreef:
Nee dit kan niet want in de database staat het dus echt badge_name_BADEID
Ja, daarom zeg ik ook: verander de data in je database zodat alleen BADGEID overblijft
0
Berichten
2.692
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Luukvdo schreef:
Eerdere citaten tonen
Nielsie schreef:
Nee dit kan niet want in de database staat het dus echt badge_name_BADEID
Ja, daarom zeg ik ook: verander de data in je database zodat alleen BADGEID overblijft
Dat zijn honderden dingen emo
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren