Bekijk Volledige Versie : Mysql select statement lukt niet helemaal
Hallo,
Ik heb twee tabellen:
Leden met velden Lidnr, naam en voornaam
Members met velden Lidnr en level.
Nu wil ik alleen de gegevens uit de tabel leden hebben waarvan het level
van die bepaalde gebruiker hetzelfde is als de actieve gebruiker.
Ik heb daarvoor volgende statement geschreven:
$sql = "SELECT *
FROM ngb_leden leden,
ngb_members_website website
WHERE website.Level =
(SELECT Level from ngb_members_website WHERE Lidnr =
'$gebruiker')
";
Krijg een error die zegt:
You have an error in your SQL syntax near 'SELECT Level from
ngb_members_website WHERE Lidnr = 'g005') ' at line 5
Lijn 5 is dus die tweede select.
--
Groeten,
StriKe
http://www.internetfreakz.be
Maarten Wierda
21/06/05, 12:25
StriKe wrote:
> Hallo,
Hoi,
> Ik heb twee tabellen:
>
> Leden met velden Lidnr, naam en voornaam Members met
> velden Lidnr en level.
Niet de meest duidelijke namen voor twee tabellen. Waarom
heb je eigenlijk twee tabellen? Kan er geen kolom 'level'
worden toegevoegd aan de tabel 'Leden'?
> Nu wil ik alleen de gegevens uit de tabel leden hebben
> waarvan het level van die bepaalde gebruiker hetzelfde is
> als de actieve gebruiker. Ik heb daarvoor volgende
> statement geschreven:
[snip query]
> Krijg een error die zegt: You have an error in your SQL
> syntax near 'SELECT Level from ngb_members_website WHERE
> Lidnr = 'g005') ' at line 5
Welke versie van MySQL gebruik je?
Werkt iets als onderstaande niet?
SELECT
*
FROM
leden, members
WHERE
leden.Lidnr = members.Lidnr
AND
members.level = 1
--
Cheers,
Maarten Wierda
Ronald Klip
21/06/05, 12:25
StriKe schreef:
> Ik heb twee tabellen:
>
> Leden met velden Lidnr, naam en voornaam
> Members met velden Lidnr en level.
Ik doorzie de logica van die opzet niet geheel. Waarom twee tabellen voor
data die zo te zien betrekking hebben op dezelfde eenheden?
> Nu wil ik alleen de gegevens uit de tabel leden hebben waarvan het level
> van die bepaalde gebruiker hetzelfde is als de actieve gebruiker.
Je bedoelt ws. '.. als het level van de actieve gebruiker.'
> Ik heb daarvoor volgende statement geschreven:
>
> $sql = "SELECT *
> FROM ngb_leden leden,
> ngb_members_website website
> WHERE website.Level =
> (SELECT Level from ngb_members_website WHERE Lidnr =
> '$gebruiker')
> ";
>
> Krijg een error die zegt:
> You have an error in your SQL syntax near 'SELECT Level from
> ngb_members_website WHERE Lidnr = 'g005') ' at line 5
Veel versies van MySQL ondersteunen geen subselects. Raadpleeg de
documentatie van jouw versie.
--
groet, Ronald
Daniel Tryba
21/06/05, 12:25
StriKe <usenet@internetfreakz.be> wrote:
> Krijg een error die zegt:
> You have an error in your SQL syntax near 'SELECT Level from
> ngb_members_website WHERE Lidnr = 'g005') ' at line 5
>
> Lijn 5 is dus die tweede select.
Een typisch geval van RTFM? Moeilijk te beoordelen aangezien de nodige
info over het systeem ontbreekt...
http://dev.mysql.com/doc/mysql/en/subqueries.html
(let op de vereiste versies) en
http://dev.mysql.com/doc/mysql/en/rewriting-subqueries.html
StriKe <usenet@internetfreakz.be> schreef in
news:Xns967C7B1DECF5Cusenetinternetfreakz@195.130. 132.70:
<knip>
Allen hartelijk dank voor de snelle reacties!
De query die Maarten voorstellen doet het ;-)
En reden waarom ik twee tabellen maak is omdat ik bijvoorbeeld in de tabel
members ook nog wil bijhouden op welke datum iemand zich heeft lid gemaakt,
of dat lid de mailing wenst te ontvangen etc etc.
Bovendien is het ook niet zo dat wanneer een lid aanwezig is in Leden, dit
ook in Members zit.
--
Groeten,
StriKe
http://www.internetfreakz.be
Maarten Wierda
21/06/05, 12:45
StriKe wrote:
> Allen hartelijk dank voor de snelle reacties! De query
> die Maarten voorstellen doet het ;-)
Mooi.
> En reden waarom ik twee tabellen maak is omdat ik
> bijvoorbeeld in de tabel members ook nog wil bijhouden op
> welke datum iemand zich heeft lid gemaakt, of dat lid de
> mailing wenst te ontvangen etc etc.
Dat kan ook in één en dezelfde tabel.
> Bovendien is het ook niet zo dat wanneer een lid aanwezig
> is in Leden, dit ook in Members zit.
Wat is dan /wel/ het verschil? Uit de namen kan ik dat niet
opmaken.
--
Cheers,
Maarten Wierda (benieuwd)
Maarten Wierda <moart3nAT@chelloDOT.nl> schreef in news:d98qli$qfl$1@nl-
news.euro.net:
>> Bovendien is het ook niet zo dat wanneer een lid aanwezig
>> is in Leden, dit ook in Members zit.
>
> Wat is dan /wel/ het verschil? Uit de namen kan ik dat niet
> opmaken.
Het gaat hier om een ledenbeheersysteem voor een club.
Een lid komt in de tabel leden te staan wanneer deze zich lid maakt van de
club. Een lid komt bijkomend in de tabel members als deze toegang wenst tot
bepaalde delen van de website.
Ik dacht dus bij mezelf: al de gegevens die in tabel members zitten in
tabel leden stoppen is nogal 'plaatsrovend'. Lang niet alle leden wensen
die toegang tot de website, vandaar...
--
Groeten,
StriKe
http://www.internetfreakz.be
google@phaedro.com
23/06/05, 23:25
Dag
StriKe schreef:
>
> $sql = "SELECT *
> FROM ngb_leden leden,
> ngb_members_website website
> WHERE website.Level =
> (SELECT Level from ngb_members_website WHERE Lidnr =
> '$gebruiker')
> ";
>
> Krijg een error die zegt:
> You have an error in your SQL syntax near 'SELECT Level from
> ngb_members_website WHERE Lidnr = 'g005') ' at line 5
vlg mij moet je altijd 'as t' achter een subselect
SELECT * FROM ngbl, (select lvl from ngbm) as t where ngbl.level=t.lvl
--
T.
www.phaedro.com
serious software engineering.