作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行以下 SQL 查询:
SELECT * FROM cms_albums WHERE id IN (SELECT album_id FROM cms_albums_collections WHERE collection_id = 1 ORDER BY position ASC)
现在,假设内部查询
SELECT album_id FROM cms_albums_collections WHERE collection_id = 1 ORDER BY position ASC
返回以下内容:
album_id
"4"
"2"
这就是我想要的顺序。然而,整个查询将返回:
id name
"2" "Second album"
"4" "First album"
我假设这是因为“cms_albums”表中的条目按此顺序排列。有什么方法可以按照内部查询给出的顺序获得总体结果吗?
谢谢
最佳答案
尝试这个变体:
SELECT DISTINCT c.*
FROM cms_albums c
JOIN cms_albums_collections cc
ON c.id = cc.album_id
WHERE cc.collection_id = 1
ORDER BY
cc.position ASC
IN 列表中的项目顺序会丢失,而是形成一个联接,然后您可以应用您想要的顺序。
关于sql - 在 mySQL 的 WHERE IN 子句中保持排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1698722/
我是一名优秀的程序员,十分优秀!