我需要将 MySql 数据库导出到 SQLite 数据库,我只从媒体中获取所需的数据,以使 de SQLite 数据库尽可能小。
我有一个查询,只给我与最新版本的条目相关的animalsMedias 或plantsMedias,已发布且未归档的动物或植物。
SELECT AM.*, max(A.version) AS version FROM animalsMedias AS AM INNER JOIN animals
AS A ON(AM.idAnimal = A.idAnimal AND A.filed = 0 AND A.published = 1) GROUP BY
A.idLanguaje, A.idVersion;
为了只获取与媒体相关的内容,我尝试在“媒体”表上进行选择,该表只返回与上一次选择的结果相关的媒体,所以我将两者都放在“IN()”中,但我得到了错误:
#1241 - Operand should contain 1 column(s)
那就是查询:
SELECT * from medias
WHERE idMedia IN(SELECT AM.*, max(A.version) AS version FROM
animalsMedias AS AM
INNER JOIN animals AS A ON(AM.idAnimal = A.idAnimal AND A.filed = 0
AND A.published = 1)
GROUP BY A.idLanguaje, A.idVersion)
OR idMedia IN(SELECT PM.*, max(P.version) AS version FROM plantsMedias AS PM
INNER JOIN plants AS P ON(PM.idPlant = P.idPlant AND P.filed = 0 AND P.published = 1)
GROUP BY P.idLanguaje, P.idVersion);
如果我必须只使用 1 个操作数,我如何获得“max(A.version)”?如果我理解得很好,在 IN 中我必须只有“IN(SELECT AM.idMedia FROM ....”才能正确。
谢谢你的建议,对不起我的英语,我尽力了。