Hallo Leute,
ich habe hier ein query welches ich bisjez nur durch subquerys geschafft habe zu realisieren^^
Die benutzten Tabellen:
Alles anzeigen
Query:
Alles anzeigen
Wie man sieht sind die Subquerys immer gleich nur das man da immer nur andere werte bekommt
Ich hoffe es sind einpaar MySQL-Cracks dabei
Mit freundlichen Grüßen,
Eugen Bolz
ich habe hier ein query welches ich bisjez nur durch subquerys geschafft habe zu realisieren^^
Die benutzten Tabellen:
Quellcode
- --
- -- Tabellenstruktur für Tabelle `forum_boards`
- --
- CREATE TABLE `forum_boards` (
- `f_board_id` int(10) unsigned NOT NULL auto_increment,
- `f_board_name` text NOT NULL,
- `f_board_over_id` int(10) NOT NULL default '0',
- `f_board_order` int(5) NOT NULL default '0',
- `f_board_info` text NOT NULL,
- `f_board_kategorie_id` int(10) NOT NULL,
- PRIMARY KEY (`f_board_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `forum_kategorien`
- --
- CREATE TABLE `forum_kategorien` (
- `f_kategorie_id` int(10) unsigned NOT NULL auto_increment,
- `f_kategorie_name` varchar(80) collate latin1_german1_ci NOT NULL,
- `f_kategorie_sortierung` int(10) unsigned NOT NULL,
- `f_kategorie_oberid` int(10) unsigned NOT NULL,
- PRIMARY KEY (`f_kategorie_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=5 ;
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `forum_posts`
- --
- CREATE TABLE `forum_posts` (
- `f_post_id` int(11) NOT NULL auto_increment,
- `f_post_user_id` int(40) NOT NULL default '0',
- `f_post_thread_id` int(10) NOT NULL default '0',
- `f_post_text` text NOT NULL,
- `f_post_ip` text NOT NULL,
- `f_post_time` text NOT NULL,
- PRIMARY KEY (`f_post_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `forum_threads`
- --
- CREATE TABLE `forum_threads` (
- `f_thread_id` int(10) unsigned NOT NULL auto_increment,
- `f_thread_name` text NOT NULL,
- `f_thread_board_id` int(10) NOT NULL default '0',
- `f_thread_user_id` int(40) NOT NULL default '0',
- PRIMARY KEY (`f_thread_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
- -- --------------------------------------------------------
- --
- -- Tabellenstruktur für Tabelle `member`
- --
- CREATE TABLE `member` (
- `member_id` int(40) unsigned NOT NULL auto_increment,
- `member_name` varchar(70) NOT NULL,
- `member_password` varchar(32) NOT NULL,
- `member_email` text NOT NULL,
- `member_site_color` varchar(7) NOT NULL,
- `member_icq` int(9) unsigned NOT NULL default '0',
- `member_ac` varchar(50) NOT NULL,
- `member_aktiviert` int(1) NOT NULL,
- PRIMARY KEY (`member_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ;
Query:
Quellcode
- SELECT
- *,
- (SELECT ft.f_thread_id FROM forum_threads ft,forum_posts fp
- WHERE fp.f_post_thread_id = ft.f_thread_id AND ft.f_thread_board_id = fb.f_board_id
- ORDER BY fp.f_post_time DESC
- LIMIT 1) as last_thread_id,
- (SELECT ft.f_thread_name FROM forum_threads ft,forum_posts fp
- WHERE fp.f_post_thread_id = ft.f_thread_id AND ft.f_thread_board_id = fb.f_board_id
- ORDER BY fp.f_post_time DESC
- LIMIT 1) as last_thread_name,
- (SELECT fp.f_post_time FROM forum_threads ft,forum_posts fp
- WHERE fp.f_post_thread_id = ft.f_thread_id AND ft.f_thread_board_id = fb.f_board_id
- ORDER BY fp.f_post_time DESC
- LIMIT 1) as last_thread_time,
- (SELECT m.member_id FROM forum_threads ft,forum_posts fp, member m
- WHERE fp.f_post_thread_id = ft.f_thread_id AND ft.f_thread_board_id = fb.f_board_id AND m.member_id = fp.f_post_user_id
- ORDER BY fp.f_post_time DESC
- LIMIT 1) as last_thread_member_id,
- (SELECT m.member_name FROM forum_threads ft,forum_posts fp, member m
- WHERE fp.f_post_thread_id = ft.f_thread_id AND ft.f_thread_board_id = fb.f_board_id AND m.member_id = fp.f_post_user_id
- ORDER BY fp.f_post_time DESC
- LIMIT 1) as last_thread_member_name
- FROM forum_kategorien fk,forum_boards fb
- WHERE fb.f_board_kategorie_id = fk.f_kategorie_id
- GROUP BY fb.f_board_id
- ORDER BY f_kategorie_sortierung ASC
Wie man sieht sind die Subquerys immer gleich nur das man da immer nur andere werte bekommt
Ich hoffe es sind einpaar MySQL-Cracks dabei

Mit freundlichen Grüßen,
Eugen Bolz