sql - SQL 查询。给出 sys_language_uid = 1 且没有 sys_language_uid = 2 的所有 pid
问题描述
我正在练习 TYPO3,我想建立一个翻译查询。
我需要所有有sys_language_uid=1
但没有翻译的pidsys_language_uid=2
如何使用 SQL 构建它?
SELECT pids FROM pages_language_overlay
WHERE sys_language_uid=1
AND (where sys_language_uid=2 doesnt exist)
谢谢
解决方案
另一种是使用不存在
(通常最快)
SELECT pids
FROM pages_language_overlay PLO
WHERE sys_language_uid = 1
and not exists (SELECT 1
FROM pages_language_overlay PLO2
WHERE PLO2.sys_language_uid = 2
and PLO.pids = PLO2.pids)
假设PIDS是一个PK。
或者使用左连接......当在 uid 2 上找不到 pids 匹配时不是禁食但提供更多数据选项。
SELECT PLO.pids
FROM pages_language_overlay PLO
LEFT JOIN pages_language_overlay PLO2
on PLO.PIDS = PLO2.PIDS
and PLO2.sys_language_uid = 2
WHERE sys_language_uid = 1
and PLO2.PIDS is null
推荐阅读
- python - Python将数据框行转置为列名,列转置为行
- keras - 将带有 Keras 模型的 Tkinter 项目转换为 exe
- python - 尝试使用包时出现未解决的参考错误
- python - python xor 只呈现零?
- javascript - 在 n8n javascript 中迭代嵌套数组输出的问题
- python - 导入文件时出现 Python 错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[SDLApplication macOSVersion]
- r - 如何对列表中的每个 df 进行分组然后排序
- asp.net-mvc - ASP.NET MVC - 表单提交后弹出更新模式
- regex - 带有 add_rewrite_rule 和正则表达式的 Wordpress 映射
- java - 在 Spring MongoDB Data 中运行原始聚合 JSON 字符串