【问题标题】:How can I select only first picture from a table?如何从表格中仅选择第一张图片?
【发布时间】:2020-05-14 19:07:00
【问题描述】:

如何从第一个表中选择所有数据,如果它们的 ID 相同,则仅从另一个表中选择 FIRST ROW 图标?

我的查询((SELECT icon from pages p2 ...) 不起作用):

SELECT * 
FROM project p
INNER JOIN grouping g ON p.ID = g.ID
           (SELECT icon FROM pages p2 WHERE p2.ID=p.ID
            ORDER BY picture LIMIT 0, 1)
WHERE g.num ='" . $id . "'
ORDER BY g.sort ASC

查询中的icon 是我需要的缩略图,但排序本身是基于picture 列的。

【问题讨论】:

    标签: sql sql-order-by inner-join where-clause


    【解决方案1】:

    您可以使用相关子查询:

    SELECT p.*,
           (SELECT pp.icon
            FROM pages pp
            WHERE pp.ID = p.ID
            ORDER BY pp.picture
            LIMIT 0, 1
           ) as icon
    FROM project p     
    WHERE g.num = ?
    ORDER BY g.sort ASC;
    

    请注意,您应该将g.num 作为参数传递,而不是修改查询字符串。因此,我更改了逻辑以使用参数占位符。

    【讨论】:

    • 谢谢。将INNER JOIN grouping g ON p.ID = g.ID 添加到您的代码后,它可以完美运行。
    猜你喜欢
    • 1970-01-01
    • 2015-11-05
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多