【问题标题】:Data from two tables and joining in codeigniter来自两个表的数据并加入 codeigniter
【发布时间】:2012-07-08 12:48:50
【问题描述】:

我有两张表,结构如下:

错误类型:

| id | errortype_text |

错误原因:

| id | errorreason_text | errortype_id |

我想从errorreason 表中选择所有数据并将errortype_id 数据替换为对应的errortype_text

这怎么可能?

【问题讨论】:

  • 在 SQL 中使用 JOIN 语句。

标签: php mysql codeigniter codeigniter-2


【解决方案1】:

如果表有外键,您可以在模型中这样做:

$this->db->select('erroreason_text');
$this->db->join('errorreason', 'errortype.id = errorreason.id');
$query = $this->db->get('errortype');
return $query->result();

【讨论】:

  • 当您使用 CodeIgniter 标签提出这个问题时,您为什么不想使用 Active Records?
  • “fk”是什么意思?如果你不想使用 Activer Records,我不明白为什么,你需要创建一个简单的查询:SELECT errorreason_text FROM errorreason, errortype WHERE errortype.id = errorreason.id
  • “fk”是什么意思?顺便说一句,您需要使用->result() 从查询中获取结果
  • 好的,我使用了fk。如果我需要我的errorreason.id 以及我的结果,该怎么做?
  • 你把它添加到你的select语句中,所以$this->db->select('errorreason.errorreason_text as errorreason_text, error_reason.errortype_id as errortype_id')等等。
【解决方案2】:

如果您谈论的是 SQL/MySQL,它应该是:

SELECT `errortype_text`, `errorreason_text`, `errortype_id` FROM `errorreason` JOIN `errortype` ON `errortype`.`id`=`errorreason`.`id`

这会根据具有相同 id 的条目连接您的表,这正是 Yan 建议的方法。

如果您明确引用 PHP/Codeigniter,则必须将其作为参数传递给 mysql_query 以便之后进行评估:

$query=mysql_query("SELECT `errortype_text`, `errorreason_text`, `errortype_id` FROM `errorreason` JOIN `errortype` ON `errortype`.`id`=`errorreason`.`id`");

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    相关资源
    最近更新 更多