페이지, 블록 및 페이지 _ 블록의 세 가지 테이블이 있습니다.페이지 블록 가져 오기
내 데이터베이스 스키마는 다음과 같습니다
CREATE TABLE `blocks` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`name` char(40) NOT NULL,
`content` text NOT NULL
PRIMARY KEY (`id`)
);
CREATE TABLE `pages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` char(100) NOT NULL,
`content` mediumtext NOT NULL
PRIMARY KEY (`id`)
);
CREATE TABLE `pages_blocks` (
`page_id` int(11) DEFAULT NULL,
`block_id` smallint(6) DEFAULT NULL,
`location` enum('left','right') DEFAULT NULL,
`display_order` smallint(6) DEFAULT NULL
);
어떤 특정 페이지의 "왼쪽"과 "오른쪽"블록을 잡기 위해 완벽한 SQL 코드를 것입니까?
귀하의 도움에 감사드립니다.
안녕 Andomar를 I 한 페이지에 두 개 이상의 블록이있을 때 같은 페이지에 대해 두 개의 행이 표시됩니다. 왜 그런가요? – emurad
@emurad : SQL은 동적 개수의 열을 반환 할 수 없으므로 "왼쪽"블록이 여러 개있을 수있는 경우 가장 좋은 옵션은 블록 당 하나의 행입니다. 나는 대답의 맨 아래에 그것을 할 길을 추가했다. – Andomar
해결책을 수락했습니다. 감사. – emurad