[SQL] select where = (select) en daar nog wat bij

Pagina: 1
Acties:

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 27-08 12:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Ik ben nu al ruim 2 dagen aan het pielen met iets waar vast een hele simpele oplossing voor is. Ik heb de volgende sql-query en ik wil daar nog wat bij hebben, namelijk 1 waarde uit een tabel. Het enige wat ik erbij wil hebben is de waarde: SELECT ExtraDescription FROM frontpage. maar dit wil gewoon niet lukken :(

SELECT * FROM groep1 WHERE EAN_NO = (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep2 WHERE EAN_NO = (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep3 WHERE EAN_NO = (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep4 WHERE EAN_NO = (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep5 WHERE EAN_NO = (SELECT FrontID FROM frontpage)


Dit is de bestaande sql-query die werkt 100% perfect. Hier ik een waarde aan toevoegen (dus dit wat er boven staat + iets erbij )

Ik heb al iets geprobeerd met:

SELECT * FROM groep1 WHERE EAN_NO = (SELECT FrontID FROM frontpage) INNER JOIN frontpage ON groep1.ExtraDescription=frontpage.ExtraDescription

of ietsje anders: SELECT * FROM groep1 INNER JOIN frontpage ON groep1.ExtraDescription=frontpage.ExtraDescription WHERE EAN_NO = (SELECT FrontID FROM frontpage)

Ook heb ik al geprobeerd met onderaan UNION SELECT ExtraDescription FROM frontpage

Voor de meeste hier is het een eitje maar ik kom er gewoon niet uit.. Iedere keer komt die met Incorrect syntax near the keyword etc. of andere foutmeldingen. De bovenstaande sql-query werkt perfect alleen dat laatste beetje erbij. Hoe pak je zoiets aan ?

[ Voor 6% gewijzigd door Erhnam op 05-12-2002 13:15 ]

http://www.xbmcfreak.nl/


Verwijderd

Vergeet de ; niet ;)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ernham Beetje meer info over je db-layout zou wel handig zijn :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:04

gorgi_19

Kruimeltjes zijn weer op :9

Je query ziet er ontzettend lastig uit... Laten we eens beginnen met deze te vereenvoudigen:

code:
1
SELECT * FROM groep1

Probeer hier als eerste eens de join op los te laten.

Verder zal je vast ook wel gehoord hebben dat mensen twijfels hebben bij je datamodel, maar dat is een ander verhaal..:)
Wat heeft dit er mee te maken? :?

[ Voor 44% gewijzigd door gorgi_19 op 05-12-2002 13:05 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 27-08 12:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Dat weet ik maar ik heb het even zo neer gezet ter verduidelijking wat ik doe.

Meer over de database inhoud. Er zijn 5 verschillende groepen. Daar wordt ingezocht naar een bepaald nummer. Zodra die het nummer vind pakt die de waardes erbij van het nummer wat die heeft gevonden. Dit werkt prima. Dat is eigenlijk de bovenstaande query. Nu wil ik er 1 waarde bij hebben. Dit lukt dus niet.
Verder zal je vast ook wel gehoord hebben dat mensen twijfels hebben bij je datamodel, maar dat is een ander verhaal..:)
Klopt :) Het is allemaal zeer omslachtig.. Maar je moet het toch ooit een keer leren. We zijn nu te ver om alles weer terug te gaan normaliseren. Er zijn minstens 50 pagina's gebouwd en om die nu allemaal terug te gaan bouwen :)

[ Voor 27% gewijzigd door Erhnam op 05-12-2002 13:08 ]

http://www.xbmcfreak.nl/


  • whoami
  • Registratie: December 2000
  • Laatst online: 09:56
Ik had je toch al eens gezegd van naar een sql tutorial te kijken?

IPV die = zul je een IN moeten gebruiken:
code:
1
select * from tabel where id in (select id from tabel2)

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 09:56
Ik snap trouwens ook niet waarom je die subquery nodig hebt?

Trouwens, (maar da's mijn mening) vind ik die JOIN syntax niet zo handig:
code:
1
2
3
4
SELECT * 
FROM groep1, frontpage
WHERE groep1.Extradescription = frontpage.description
AND groep1.EAN in (select id from frontpage)

https://fgheysels.github.io/


  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 27-08 12:50

Erhnam

het Hardware-Hondje :]

Topicstarter
Die w3schools pagina ken ik echt wel ;)

Dat bovenstaande levert een bepaald resultaat op. Om even als voorbeeld te nemen.

SELECT FrontID FROM frontpage = heeft de waarde 123.
Dan zoekt die en toevallig staat er in groep3 een ean_no met 123. Dan pakt die alle waardes van dat product uit de groep3 erbij.

Dit werkt prima. Ik wil er alleen nog 1 waarde bij hebben. En dit lukt dus niet. Het is geen vergelijking meer het is meer van 'plus'.. deze waardes + de waarde apart erbij.

http://www.xbmcfreak.nl/


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Werkt dit niet:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT g1.*, fp1.ExtraDescription
FROM groep1 g1
INNER JOIN frontpage fp1 ON g1.EAN_NO = fp1.FrontID
UNION ALL
SELECT g2.*, fp2.ExtraDescription
FROM groep2 g2
INNER JOIN frontpage fp2 ON g2.EAN_NO = fp2.FrontID
UNION ALL
SELECT g3.*, fp3.ExtraDescription
FROM groep3 g3
INNER JOIN frontpage fp3 ON g3.EAN_NO = fp3.FrontID
UNION ALL
SELECT g4.*, fp4.ExtraDescription
FROM groep4 g4
INNER JOIN frontpage fp4 ON g4.EAN_NO = fp4.FrontID
UNION ALL
SELECT g5.*, fp5.ExtraDescription
FROM groep5 g5
INNER JOIN frontpage fp5 ON g5.EAN_NO = fp5.FrontID

  • VisionMaster
  • Registratie: Juni 2001
  • Laatst online: 18-07 20:32

VisionMaster

Security!

Probeer:

code:
1
2
3
4
5
6
7
8
9
SELECT * FROM groep1 WHERE EAN_NO IS (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep2 WHERE EAN_NO IS (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep3 WHERE EAN_NO IS (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep4 WHERE EAN_NO IS (SELECT FrontID FROM frontpage)
UNION ALL
SELECT * FROM groep5 WHERE EAN_NO IS (SELECT FrontID FROM frontpage)

I've visited the Mothership @ Cupertino

Pagina: 1