Ik heb de volgende tabellen:

CREATE TABLE `tblsites` (
`pkSiteID` bigint(21) unsigned NOT NULL auto_increment,
`naamSite` varchar(255) NOT NULL default '',
`taal` varchar(50) default NULL,
`url` varchar(255) default NULL,
`banner_1` varchar(255) default NULL,
`banner_2` varchar(255) default NULL,
`banner_3` varchar(255) default NULL,
`banner_4` varchar(255) default NULL,
`banner_5` varchar(255) default NULL,
`banner_6` varchar(255) default NULL,
`banner_7` varchar(255) default NULL,
`banner_8` varchar(255) default NULL,
`eigen` varchar(255) default NULL,
`aanmeldbonus` decimal(5,2) default NULL,
`uitbetaalgrens` varchar(25) default NULL,
`centpermail` decimal(3,1) default NULL,
`aantalmails` tinyint(3) unsigned default NULL,
`refcredit` varchar(25) default NULL,
`reflevels` tinyint(3) unsigned default NULL,
`bubble` varchar(15) default NULL,
`cijfer` tinyint(3) unsigned default NULL,
`waardering` varchar(10) default NULL,
`ervaring` longtext,
`bank` enum('0','1') default '0',
`paypal` enum('0','1') default '0',
`e_gold` enum('0','1') default '0',
`check` enum('0','1') default '0',
`moneybookers` enum('0','1') default '0',
`ewp` enum('0','1') default '0',
`fgh50` enum('0','1') default '0',
`fgh100` enum('0','1') default '0',
`sms` enum('0','1') default '0',
`prijsvragen` enum('0','1') default '0',
`enquetes` enum('0','1') default '0',
`betaalMails` enum('0','1') default '0',
`quiz` enum('0','1') default '0',
`spellen` enum('0','1') default '0',
`acties` enum('0','1') default '0',
`chat` enum('0','1') default '0',
`webtv` enum('0','1') default '0',
`18plus` enum('0','1') default '0',
`afrader` enum('0','1') default '0',
`scam` enum('0','1') default '0',
`afgekeurd` enum('0','1') default '0',
`forum` enum('0','1') default '0',
`webmaster` enum('0','1') default '0',
`systeem` varchar(10) default NULL,
`opmerkingen` longtext,
PRIMARY KEY (`pkSiteID`)
) TYPE=MyISAM COMMENT='GPT-sites';

CREATE TABLE `tblland` (
`pkNationaliteitID` tinyint(3) unsigned NOT NULL auto_increment,
`kenteken` varchar(5) NOT NULL default '',
`nationaliteit` varchar(255) NOT NULL default '',
`taal` varchar(50) default NULL,
`vlag` longblob,
`notes` longtext,
`landlink` varchar(255) default NULL,
PRIMARY KEY (`pkNationaliteitID`)
) TYPE=MyISAM COMMENT='Landen';

CREATE TABLE `tblaanmeldbonus` (
`pkAanmeldBonusID` tinyint(3) unsigned NOT NULL auto_increment,
`AanmeldBonus` varchar(25) NOT NULL default '',
PRIMARY KEY (`pkAanmeldBonusID`)
) TYPE=MyISAM COMMENT='Aanmeldbonus';

CREATE TABLE `tbluitbetaalgrens` (
`pkUitbetaalGrensID` tinyint(11) unsigned NOT NULL auto_increment,
`UitbetaalGrens` varchar(25) NOT NULL default '',
PRIMARY KEY (`pkUitbetaalGrensID`)
) TYPE=MyISAM COMMENT='Uitbetaalgrens';

CREATE TABLE `tblreflevels` (
`pkRefLevelID` tinyint(3) unsigned NOT NULL auto_increment,
`RefLevels` tinyint(3) unsigned default NULL,
PRIMARY KEY (`pkRefLevelID`)
) TYPE=MyISAM COMMENT='RefLevels';

daarmee wil ik de sites, land, aanmeldbonus, uitbetaalgrens en reflevels in een tabel laten zien.

Ik heb de volgende query:

SELECT tblSites.naamSite, tblLand.Taal, tblAanmeldbonus.Aanmeldbonus, tblUitbetaalgrens.Uitbetaalgrens, tblRefLevels.RefLevels
FROM tblRefLevels 
INNER JOIN (tblUitbetaalgrens INNER JOIN (tblAanmeldbonus INNER JOIN (tblLand INNER JOIN tblSites ON tblLand.pkNationaliteitID = tblSites.pkNationaliteitID) ON tblAanmeldbonus.pkAanmeldbonusID = tblSites.pkAanmeldbonusID) ON tblUitbetaalgrens.pkUitbetaalgrensID = tblSites.pkUitbetaalgrensID) ON tblRefLevels.pkRefLevelID = tblSites.pkRefLevelID
ORDER BY tblUitbetaalgrens.Uitbetaalgrens, tblAanmeldbonus.Aanmeldbonus DESC;


maar ik krijg de melding:
"Something is wrong in your syntax bij '(tbluitbetaalgrens INNER JOIN (tblaanmeldbonus INNER JOIN (tblla' in regel 1"
Blijkbaar mag dat haakje openen niet na INNER JOIN.
Zonder haakjes werkt het ook niet:


SELECT tblSites.naamSite, tblLand.Taal, tblAanmeldbonus.Aanmeldbonus, tblUitbetaalgrens.Uitbetaalgrens, tblRefLevels.RefLevels
FROM tblRefLevels 
INNER JOIN tblUitbetaalgrens INNER JOIN tblAanmeldbonus INNER JOIN tblLand INNER JOIN tblSites ON tblLand.pkNationaliteitID = tblSites.pkNationaliteitID ON tblAanmeldbonus.pkAanmeldbonusID = tblSites.pkAanmeldbonusID ON tblUitbetaalgrens.pkUitbetaalgrensID = tblSites.pkUitbetaalgrensID ON tblRefLevels.pkRefLevelID = tblSites.pkRefLevelID
ORDER BY tblUitbetaalgrens.Uitbetaalgrens, tblAanmeldbonus.Aanmeldbonus DESC; 


dan krijg ik dezelfde melding.
Is het niet iets in de trend van

inner join tabel on iets.id=ietsanders.id,
inner join tabel on nogiets.id=nogietsanders.id


Lijkt mij tenminste


SELECT t1.name, t2.salary
FROM employee t1 INNER JOIN info t2 ON t1.name = t2.name;
volgens deze site

Ow ja schrijf je querie ook eens uit op deze maniet

SELECT
  a.jouwding
FROM
  jouwtabel a
INNER JOIN     
  jouwtabel b
ON a.id=b.id
WHERE 
 a.blaat = 3
ORDER BY a.id   


dan blijft het leesbaar tussen de code tags
Je hebt gelijk Klaasjan:

de goeie query moest zijn:


SELECT tblSites.naamSite, tblLand.Taal, tblAanmeldbonus.Aanmeldbonus, tblUitbetaalgrens.Uitbetaalgrens, tblRefLevels.RefLevels
FROM tblRefLevels 
INNER JOIN tblUitbetaalgrens ON tblUitbetaalgrens.pkUitbetaalgrensID = tblSites.Uitbetaalgrens
INNER JOIN tblAanmeldbonus ON tblAanmeldbonus.pkAanmeldbonusID = tblSites.Aanmeldbonus
INNER JOIN tblLand ON tblLand.pkNationaliteitID = tblSites.taal
INNER JOIN tblSites ON tblRefLevels.pkRefLevelID = tblSites.RefLevels
ORDER BY tblUitbetaalgrens.Uitbetaalgrens, tblAanmeldbonus.Aanmeldbonus DESC; 


Ik had de 1e query ook direkt uit Access overgenomen maar moest het dus nog ff naar MySQL 'vertalen'
Hij doet het?

Mooi weer iemand blij :) ( en dat op Sinterklaas(jan))
Offtopic: Ik heb het idee dat het datamodel niet optimaal is.

`banner_1` varchar(255) default NULL,
`banner_2` varchar(255) default NULL,
`banner_3` varchar(255) default NULL,
`banner_4` varchar(255) default NULL,
`banner_5` varchar(255) default NULL,
`banner_6` varchar(255) default NULL,
`banner_7` varchar(255) default NULL,
`banner_8` varchar(255) default NULL,
Dit stuk is in elk geval niet genormaliseerd.

Verder had je beter geen MyIsam kunnen gebruiken, met innoDB kun je namelijk foreignkey's gebruiken en krijg je een veel betere database. Met MyIsam hangen alle tabellen als los zand aan elkaar. 1 verkeerde query en de hele boel stort als een kaartenhuis in elkaar. Met foreignkey's (worden alleen met innoDB ondersteund) kun je dit soort problemen voorkomen.

Reageren