gpt4 book ai didi

php - 查询返回不存在的行

转载 作者:行者123 更新时间:2023-11-29 06:05:20 24 4
gpt4 key购买 nike

我在 CodeIgniter 的模型中有这个查询:

function get_licenses_info($id)
{
$this->db->select('
vendors.id as vendors_id,
vendor_licenses.id as vendor_licenses_id,
vendor_licenses.vendor_id,
vendor_licenses.license_type,
vendor_licenses.date_expires,
vendor_licenses.license_num
');
$this->db->from('vendors');
$this->db->join('vendor_licenses', 'vendor_licenses.vendor_id = vendors.id', 'left');
$query = $this->db->get();
return $query->result_array();
}

在我看来这段代码:

foreach($licenses as $l)
{
echo $l['license_type'];
if(strtotime($l['date_expires']) < time())
{
echo " expired on ".date("M, d, Y", strtotime($l['date_expires']))."<br>";
}
else
{
echo "<br>";
}
}

这是 View 中返回的内容:

Baldwin County
City of Pensacola expired on Jan, 04, 2017
expired on Dec, 31, 1969

我想也许我的数据库中多了一行。但是我查了一下,里面只有我放的那两条记录。所以我想也许表已损坏,将其删除并制作了一个包含 2 条新记录的新副本......同样的问题。更奇怪的是,当我删除所有记录时,我得到的不是一个,而是两个“空白”迭代。我用谷歌搜索了很多,但找不到关于这件事的任何,不是通过搜索 CodeIgniter 的问题,甚至是一般的 mySQL 工作。任何建议将不胜感激。

这是 vendor_licenses 表:

╔════════════════════════════════════════════════════╦══╗
║ ║ ║
╠════════════════════════════════════════════════════╬══╣
║ id vendor_id license_type date_expires license_num ║ ║
║ 1 2 Baldwin County 2017-02-03 NULL ║ ║
║ 2 2 City of Pensacola 2017-01-04 NULL ║ ║
╚════════════════════════════════════════════════════╩══╝

这是供应商表:

+--------------+
| id is_active |
+--------------+
| 1 1 |
| 2 1 |
+--------------+

最佳答案

反转 JOIN。

你正在做:

SELECT fields FROM vendors 
LEFT JOIN vendor_licenses ON vendor_licenses.vendor_id = vendors.id

因此,您为 vendors 表的每条记录获取一行。但我认为您对获取 vendor id=1 的任何信息不感兴趣,它在 vendor_licenses 表中没有任何信息(您得到一个不完全知情的行)。

相反,尝试:

SELECT fields FROM vendor_licenses 
LEFT JOIN vendors ON vendor_licenses.vendor_id = vendors.id

.. 这样您就可以为每个 vendor_license 记录获取一行。

或者简单地保持原样,但不是 LEFT 而是 RIGHT JOIN 表:

$this->db->join('vendor_licenses', 'vendor_licenses.vendor_id = vendors.id', 'right');

关于php - 查询返回不存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com