【问题标题】:Grocery relation sql databases杂货店关系sql数据库
【发布时间】:2018-05-09 08:48:51
【问题描述】:

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

$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;

最后我想提取子名和过期。

【问题讨论】:

  • 您的预期结果是什么,请给我更多详细信息?
  • 我想显示来自 'lista_ab' 的 Subname 和 Expire from 'lista_ab_term' 与 id_ab 的关系
  • 如果可能,请导出两个表格并与我们分享?
  • 他们已经在上面的问题中了。
  • 请查看我的回答

标签: php mysql codeigniter grocery-crud


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以使用这样的连接查询来获得预期的结果:

    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();
    

    【讨论】:

    • op 正在使用 crocery crud - 所以问题与 CI 的查询构建器或任何本机查询无关......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    相关资源
    最近更新 更多