自分だったら、基本的には、以下のように設計します。インデックスとかは省略してます。
sql
1CREATE TABLE `ARTICLES` (
2 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
3 `station_id` int(11) DEFAULT NULL,
4 `content` varchar(1000) DEFAULT NULL,
5 PRIMARY KEY (`id`)
6) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
7
8
9CREATE TABLE `LINES` (
10 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
11 `line_name` varchar(255) DEFAULT NULL,
12 PRIMARY KEY (`id`)
13) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
14
15
16CREATE TABLE `LINK_LINE_STATION` (
17 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
18 `line_id` int(11) DEFAULT NULL,
19 `staion_id` int(11) DEFAULT NULL,
20 PRIMARY KEY (`id`)
21) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
22
23
24CREATE TABLE `STATIONS` (
25 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
26 `staion_name` varchar(255) DEFAULT NULL,
27 PRIMARY KEY (`id`)
28) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
sql
1SELECT
2 `ARTICLES`.`id`
3 , `ARTICLES`.`content`
4 , `STATIONS`.`station_name`
5 , `LINES`.`line_name`
6FROM
7 `ARTICLES`
8INNER JOIN
9 `STATIONS`
10ON
11 `ARTICLES`.`station_id` = `STATIONS`.`id`
12LEFT JOIN
13 `LINK_LINE_STATION`
14ON
15 `STATIONS`.`id` = `LINK_LINE_STATION`.`staion_id`
16LEFT JOIN
17 `LINES`
18ON
19 `LINK_LINE_STATION`.`line_id` = `LINES`.`id`
20WHERE
21 `LINES`.`line_name` LIKE '%路線名%'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/17 16:07 編集
退会済みユーザー
2015/09/17 16:08