Hoi,
Ik heb een database-structuur met 5 tables.
*.siteid corresponderen met sites.id
Nu had ik een query gemaakt, om een idee te geven wat ik wil
Alleen die group_concat in combinatie met joins geeft een enorme teringzooi, met heel veel dubbele hits in de t1.*name kolommen
Hoe kan ik dit omzetten dat dit toch gebruikt kan worden?
Alles na WHERE zou ik graag dynamisch willen maken en de rest zeg maar statisch.
Is dit mogelijk en hoe zou ik dit moeten doen?
Alvast bedankt voor de hulp
Ik heb een database-structuur met 5 tables.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| CREATE TABLE `sites` ( `id` int(11) NOT NULL auto_increment, `sn` varchar(20) NOT NULL default '', `ln` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=560 DEFAULT CHARSET=latin1 CREATE TABLE `groups` ( `id` int(20) NOT NULL auto_increment, `name` varchar(150) NOT NULL default '', `siteid` int(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `siteid` (`siteid`) ) ENGINE=MyISAM AUTO_INCREMENT=2401 DEFAULT CHARSET=latin1 CREATE TABLE `users` ( `id` int(20) NOT NULL auto_increment, `name` varchar(150) NOT NULL default '', `siteid` int(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `siteid` (`siteid`) ) ENGINE=MyISAM AUTO_INCREMENT=2401 DEFAULT CHARSET=latin1 CREATE TABLE `hints` ( `id` int(20) NOT NULL auto_increment, `name` varchar(150) NOT NULL default '', `siteid` int(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `siteid` (`siteid`) ) ENGINE=MyISAM AUTO_INCREMENT=2401 DEFAULT CHARSET=latin1 CREATE TABLE `sections` ( `id` int(20) NOT NULL auto_increment, `name` varchar(150) NOT NULL default '', `siteid` int(20) NOT NULL default '0', PRIMARY KEY (`id`), KEY `siteid` (`siteid`) ) ENGINE=MyISAM AUTO_INCREMENT=2401 DEFAULT CHARSET=latin1 |
*.siteid corresponderen met sites.id
Nu had ik een query gemaakt, om een idee te geven wat ik wil
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| SELECT t1.sn,t1.ln,t1.gname,t1.uname,t1.sname,t1.hname FROM ( SELECT sites.ln as ln , sites.sn as sn , group_concat(groups.name) as gname , group_concat(users.name) as uname , group_concat(hints.name) as hname , group_concat(sections.name) as sname FROM sites JOIN groups ON sites.id = groups.siteid JOIN users ON sites.id = users.siteid JOIN hints ON sites.id = hunts.siteid JOIN sections ON sites.id = sections.siteid GROUP by sites.sn ) AS t1 WHERE t1.sname LIKE '%GROUP%' AND t1.sname LIKE '%SECTION%' AND t1.hname NOT LIKE '%HINT%' ; |
Alleen die group_concat in combinatie met joins geeft een enorme teringzooi, met heel veel dubbele hits in de t1.*name kolommen
Hoe kan ik dit omzetten dat dit toch gebruikt kan worden?
Alles na WHERE zou ik graag dynamisch willen maken en de rest zeg maar statisch.
Is dit mogelijk en hoe zou ik dit moeten doen?
Alvast bedankt voor de hulp