php - 选择三个表按特定表排序

标签 php mysql select sql-order-by

我有一个小问题无法解决。我有三个表,SELECT 如以下代码所示:

SELECT p.*, c.*, i.* 
FROM produto p, categoria c, imagem i 
WHERE p.categoria_id = c.categoria_id 
    AND p.produto_id = i.produto_id 
GROUP BY(p.produto_id)

产品 (produto) 可以具有表格图像 (imagem) 中的无限图像,并且我只想列出仅具有一张图像(不同图像)的产品。我想要的图像位于表 images(imagem) 的 image_order(imagem_ordem) 列中,其中有一个顺序,例如 1、2、3 等。

我想选择 1 (ONE) 或更接近的订单。我尝试输入ORDER BY i.imagem_ordem,但它不起作用。我相信这可以是一个 JOIN 方法。

最佳答案

我不确定我是否理解您想要什么,但此查询将返回带有一张图像的所有产品

SELECT p.*, c.*, i.* 
FROM produto p, categoria c, imagem i 
WHERE p.categoria_id = c.categoria_id 
    AND p.produto_id = i.produto_id 
GROUP BY(p.produto_id)
HAVING COUNT(i.*)=1

关于php - 选择三个表按特定表排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666829/

相关文章:

带有空字符串的 PHP SimpleXML::addChild - 冗余节点

mysql - JOIN 中的 CONCAT_WS 行

php - 从数据库中获取用户的所有记录

sql - 在 Oracle SQL 中连接表和获取数据时出现问题

MySql 查询字符串部分

PHP:如何创建 unicode 文件名

php - 如何以连续序列号显示从 mysql 表检索的数据

php - Symfony 表单类型选择字段 bool 值始终为真

如果其中一个字段重复,则 Mysql 更新

mysql - 需要调整哪些设置来改进包含大量列和少量联接的 SELECT?