杂货关系sql数据库

时间:2018-05-09 08:48:52

标签: php mysql codeigniter grocery-crud

我使用grocery-crud进行简单的SQL select

$crud->set_table('lista_ab');
$crud->set_relation('id_ab','lista_ab_term','Expire');

问题在于它没有为' id_ab'

建立关系

我的数据库看起来

CREATE TABLE `lista_ab` (
  `id_ab` int(10) NOT NULL,
  `Subname` varchar(255) DEFAULT NULL,
  `Name` varchar(255) DEFAULT NULL,
  `Inregistrat` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `lista_ab_term` (
  `ID` int(10) NOT NULL,
  `id_ab` int(10) DEFAULT NULL,
  `Expire` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

在决赛中,我想提取子名称和过期。

2 个答案:

答案 0 :(得分:0)

您无法创建下拉列表并显示第一个表的字段名称:Subname,但您可以从另一个表中调用多个字段,语法非常简单。 就在第3个字段,您将获得符号{和}。所以它将是例如:

$crud->set_relation('id_ab','lista_ab_term','{Expire} - {ID}');

答案 1 :(得分:0)

您可以使用此类联接查询来获得预期结果:

SELECT t1.Subname, t2.Expire FROM lista_ab t1 LEFT JOIN lista_ab_term t2 ON t1.id_ab = t2.id_ab

或在Codeigniter中

$this->db->select('lista_ab.Subname, 
                   lista_ab_term.Expire');
$this->db->from('lista_ab');
$this->db->join('lista_ab_term', 'lista_ab.id_ab= lista_ab_term.id_ab');
$q = $this->db->get();