不管表中有多少条记录,都为每一列检索一条记录

门扳手

我想选择一个有两个联接的记录。我有以下查询:

$this->db
        ->select('vehicle.idvehicle, vehicle.mark, vehicle.model, vehicle.type, vehicle.author_id, users.nick, photos.name')
        ->from('xxxxxsld_auto.vehicle')
        ->join('users', 'vehicle.author_id = users.userid')
        ->join('photos', 'vehicle.idvehicle = photos.vehicle_id')
        ->get()
        ->result_array();

它工作正常,但是如果我在数据库中有更多照片,则会得到更多记录,这取决于照片记录。无论照片表中的号码记录如何,我该如何为每辆车获得一份记录?

编辑: LIMITDISTINCT没有工作。

哈里德·朱奈德(M Khalid Junaid)

您可以使用GROUP_CONCATSUBSTRING_INDEX挑选一张照片,如果您希望所有照片都可以使用,GROUP_CONCAT(photos.name) AS photo并且可以用逗号分隔列表获取所有照片名称,我已经使用过,->group_by('vehicle.idvehicle');因此对于一个车组,所有照片都将用逗号合并,但是在您的问题中,您说您需要一张照片,所以我用过SUBSTRING_INDEXGROUP_CONCAT如果照片的ID是自动递增的那么您还可以通过使用ORDER获得最新的照片SUBSTRING_INDEX(GROUP_CONCAT(photos.name ORDER BY photo.id DESC),',',1) AS photo

$this->db
        ->select("vehicle.idvehicle, vehicle.mark,
         vehicle.model, vehicle.type, vehicle.author_id, users.nick, 
         SUBSTRING_INDEX(GROUP_CONCAT(photos.name),',',1) AS photo,",FALSE)
        ->from('xxxxxsld_auto.vehicle')
        ->join('users', 'vehicle.author_id = users.userid')
        ->join('photos', 'vehicle.idvehicle = photos.vehicle_id')
        ->group_by('vehicle.idvehicle'); 
        ->get()
        ->result_array();

或者只是使用分组依据

$this->db
        ->select("vehicle.idvehicle, vehicle.mark,
         vehicle.model, vehicle.type, vehicle.author_id, users.nick, 
         photos.name,",FALSE)
        ->from('xxxxxsld_auto.vehicle')
        ->join('users', 'vehicle.author_id = users.userid')
        ->join('photos', 'vehicle.idvehicle = photos.vehicle_id')
        ->group_by('vehicle.idvehicle'); 
        ->get()
        ->result_array();

编辑根据您所说的评论,您需要所有照片,因此请注意,GROUP_CONCAT默认连接个数限制为1024个字符,但是可以按照手册进行操作来增加此限制。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

分组mysql表时检索最后一条记录

来自分类Dev

分组mysql表时检索最后一条记录

来自分类Dev

从一条记录检索记录到另一条记录

来自分类Dev

sql查询不检索所有记录只检索最后一条记录

来自分类Dev

从表中的分组记录中选择除最后一条记录之外的所有记录

来自分类Dev

仅检索每个实体的最后一条记录,而不是所有记录

来自分类Dev

尽管有多个记录,但jdbc中的语句仅检索第一条记录

来自分类Dev

如何显示具有重复值的一列的最后一条记录,以及显示该列的值的次数

来自分类Dev

如何从MS Access / SQL中的第一条记录开始获取一列中每三个记录的平均值?

来自分类Dev

Microsoft Access SQL仅返回一组分组记录中的最后一条记录等于另一列中的某条记录的记录

来自分类Dev

Yii从表中选择在相关表中没有记录的第一条记录

来自分类Dev

如何根据一列值是否只有一条记录来过滤NULL,T-SQL

来自分类Dev

检索每组的第一条和最后一条记录

来自分类Dev

检索sqlite数据库的最后一条记录

来自分类Dev

仅从 LEFT JOIN 检索一条记录

来自分类Dev

表格对同一条记录有多个输入项,我需要获取一个列值,而同一记录的另一列值最大

来自分类Dev

如何将一列的第一条记录与另一列的第二条记录求和?

来自分类Dev

SQL查询从链接表中检索最后一条记录

来自分类Dev

当结果集在逻辑应用中有一条记录时,Foreach 不支持

来自分类Dev

检索所有行,但缺少第一条记录

来自分类Dev

如何在下一条记录等于上一条记录时对所有记录进行分组

来自分类Dev

ResultSet仅返回表中的最后一条记录

来自分类Dev

获取mysql表中的最后一条记录

来自分类Dev

Codeigniter 3联接表并获得一条记录

来自分类Dev

在表中仅显示一条记录

来自分类Dev

外键仅从表中选择一条记录

来自分类Dev

从不同的表中删除一条记录

来自分类Dev

Oracle中选择一条记录的表

来自分类Dev

连接两张表成为一条记录

Related 相关文章

  1. 1

    分组mysql表时检索最后一条记录

  2. 2

    分组mysql表时检索最后一条记录

  3. 3

    从一条记录检索记录到另一条记录

  4. 4

    sql查询不检索所有记录只检索最后一条记录

  5. 5

    从表中的分组记录中选择除最后一条记录之外的所有记录

  6. 6

    仅检索每个实体的最后一条记录,而不是所有记录

  7. 7

    尽管有多个记录,但jdbc中的语句仅检索第一条记录

  8. 8

    如何显示具有重复值的一列的最后一条记录,以及显示该列的值的次数

  9. 9

    如何从MS Access / SQL中的第一条记录开始获取一列中每三个记录的平均值?

  10. 10

    Microsoft Access SQL仅返回一组分组记录中的最后一条记录等于另一列中的某条记录的记录

  11. 11

    Yii从表中选择在相关表中没有记录的第一条记录

  12. 12

    如何根据一列值是否只有一条记录来过滤NULL,T-SQL

  13. 13

    检索每组的第一条和最后一条记录

  14. 14

    检索sqlite数据库的最后一条记录

  15. 15

    仅从 LEFT JOIN 检索一条记录

  16. 16

    表格对同一条记录有多个输入项,我需要获取一个列值,而同一记录的另一列值最大

  17. 17

    如何将一列的第一条记录与另一列的第二条记录求和?

  18. 18

    SQL查询从链接表中检索最后一条记录

  19. 19

    当结果集在逻辑应用中有一条记录时,Foreach 不支持

  20. 20

    检索所有行,但缺少第一条记录

  21. 21

    如何在下一条记录等于上一条记录时对所有记录进行分组

  22. 22

    ResultSet仅返回表中的最后一条记录

  23. 23

    获取mysql表中的最后一条记录

  24. 24

    Codeigniter 3联接表并获得一条记录

  25. 25

    在表中仅显示一条记录

  26. 26

    外键仅从表中选择一条记录

  27. 27

    从不同的表中删除一条记录

  28. 28

    Oracle中选择一条记录的表

  29. 29

    连接两张表成为一条记录

热门标签

归档