从数据库表中排序数据

时间:2014-11-18 10:23:33

标签: php mysql database

我有一个包含四个表的数据库:

1)数据库 - 保存不同的数据集

CREATE TABLE IF NOT EXISTS `databases` (
    `id` int(11) NOT NULL,
    `name` varchar(200) NOT NULL,
    `title` varchar(200) NOT NULL COMMENT 'label for the database',
    `auto_width` tinyint(4) NOT NULL DEFAULT '1',
    `set_width` int(11) NOT NULL DEFAULT '0',
    `date_created` int(11) NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;

2)数据库字段 - 保存数据库中的不同字段。 (每个数据库都有几个用户可以保存数据的字段)

CREATE TABLE IF NOT EXISTS `database_fields` (
    `id` int(11) NOT NULL,
    `database_id` int(11) NOT NULL,
    `column_id` varchar(20) NOT NULL,
    `description` text NOT NULL,
    `min_num_characters` int(11) NOT NULL,
    `max_num_characters` int(11) NOT NULL,
    `type` varchar(10) NOT NULL,
    `editable` int(11) NOT NULL DEFAULT '1',
    `displayed` int(11) NOT NULL DEFAULT '1',
    `start_value` text NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=98 ;

3)数据库数据 - 保存数据库中的不同行

CREATE TABLE IF NOT EXISTS `database_data` (
    `id` int(11) NOT NULL,
    `database_id` int(11) NOT NULL,
    `title` varchar(100) NOT NULL,
    `status` int(11) NOT NULL DEFAULT '1' COMMENT '1 =Active, 2 =Deleted.',
    `date_added` int(11) NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3586 ;

4)数据库字段值 - 保存每个数据库中不同字段的值:

CREATE TABLE IF NOT EXISTS `database_fields_values` (
    `id` int(11) NOT NULL,
    `database_id` int(11) NOT NULL,
    `data_id` int(11) NOT NULL,
    `field_id` int(11) NOT NULL,
    `field_value` text NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=24351 ;

我可以通过循环每个数据库下的不同字段并使用三个键database_iddata_idfield_id使用简单查询读取数据来查询表中的数据。但是我不确定如何通过一个字段排序(field_value表中的database_fields_values字段)检索数据,但在某些情况下,所有行可能没有该字段的值,即对于行xdatabase_fields_values中可能没有字段' Field_x'的条目。

我不确定我的解释是否熟练且易于理解,如果有,请帮助我,我们将非常感激。

0 个答案:

没有答案