按特定表顺序选择三个表

Posted

技术标签:

【中文标题】按特定表顺序选择三个表【英文标题】:Select three tables order by specific table 【发布时间】:2014-01-07 03:27:16 【问题描述】:

我有一个我无法解决的小问题。我有三个表,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) 的无限图像,我只想列出只有一个图像(各种)的产品。我想要的图像在表格图像(imagem) 的 image_order(imagem_ordem) 列中,其中有一个顺序,例如 1、2、3 等等。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

是的,QUERY 已经为产品返回了一张图片,但我想获取 image_order(带 INT 编号的列)更接近 1(ONE)的图片。你明白吗?你能帮忙吗?

以上是关于按特定表顺序选择三个表的主要内容,如果未能解决你的问题,请参考以下文章

插入..按[重复]顺序选择

以特定顺序从两个表 mysql 中选择,因为输出必须具有特定结构

SQL按多列以不同顺序排序后选择奇数行

按特定顺序选择特定行[重复]

关系代数

oracle如何按特定顺序选择数据