mysql - 带有两个单独表的 Mysql NOT EXISTS 似乎无法按预期工作
问题描述
我正在尝试为每个case_type
处理每个的数据state
,city
并且court_complex
,为了实现这一点,我创建了一个名为的表case_pointer
,用于保存上述各项的组合。除了case_pointer
显示已处理案件之外,我还创建了一个名为的表skippers
,其中包含 state_id、city_id、court_complex 和 case_type id。船长需要从最终指针表中排除 state、city 或 court_complex。
到目前为止,这是我的查询,但它的工作方式相反。它显示存在于skippers中的记录,而不是排除它们。
SELECT cp.id AS case_pointerID,
ct.id AS caseTypeID,
ct.ct_id AS casetypeCode,
ct.cc_id AS cc_id,
ct.name AS caseTypeName,
co.wid AS complexCode,
co.id AS complex_id,
co.name AS courtName,
ci.id AS city_id,
ci.wid AS cityCode,
ci.name AS cityName,
st.id AS state_id,
st.name AS stateName,
st.wid AS stateCode
FROM case_types ct
LEFT JOIN court_complex co
ON ct.cc_id = co.id
LEFT JOIN city ci
ON co.city_id = ci.id
LEFT JOIN state st
ON ci.state_id = st.id
LEFT JOIN case_pointer cp
ON ct.id = cp.casetypeid
WHERE NOT EXISTS
(SELECT 1
FROM case_pointer cp
WHERE EXISTS (SELECT null
FROM skippers sk
WHERE sk.state_id = cp.state_id)
)
OR cp.id IS NULL
ORDER BY st.id ASC, ct.id ASC, co.id ASC
LIMIT 5
如果我做错了什么,请告诉我。
解决方案
您的NOT EXISTS
子查询似乎与主查询没有任何联系(别名“cp”使用了两次),因此无效。
此外,括号上看起来有些错误。
推荐阅读
- javascript - OnChanges 不会在部分对象更改时触发
- wolfram-mathematica - 无法在 Show[ 中组合图形对象
- powershell - PowerShell 统计对象的属性值出现次数
- angular - 如何在 Angular Promise 或 observable 中定位错误?
- python - 更改列中的所有第一个值,从其他列分组
- shell - 如何通过浏览器访问您的终端窗口?
- php - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“1”附近使用的正确语法
- asynchronous - Shiny - 在执行异步任务时更改 actionButton 的颜色
- r - 使用 plot3D 更改图形的轴标题相对于轴本身的距离或旋转
- javascript - 最后开始读取 json 文件