0
我有三个表格:页面,块和pages_blocks。获取页面块
我的数据库架构看起来如下:
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,我当我有一个以上的块时,我会在同一页面上获得两行。这是为什么? – emurad 2011-03-12 10:07:59
@emurad:SQL无法返回动态数量的列,因此如果可以有多个“左”块,则最佳选项是每块有一行。我在答案的底部添加了一种方法来做到这一点。 – Andomar 2011-03-12 10:12:10
我接受了解决方案。谢谢。 – emurad 2011-03-12 14:12:37