【发布时间】:2023-03-20 05:02:01
【问题描述】:
我正在尝试编写正确的查询,但它们显示的结果不正确。 例如,我有表 ABC:
id a_id b_id c 1 10 100 2 10 111 3 11 111 4 11 222 5 11 333 111&&222&&333 6 12 444 7 12 555 444&&111在 c 列中只能有 b_id 和 && 属于同一个 a_id。 比如这条记录不正确:
7 12 555 444&111因为 111 在 a_id 10 或 11 而不是 12 中。我怎样才能找到它? 我需要找到 C 列中出现(无效)值 b_id 且不在同一个 a_id 中的所有行。 Sql(postgresql) 不能正常工作,为什么?感谢您的帮助。
我的 sql:
选择 * 从 ABC x 在哪里 x.id (选择 y.id 从 ABC y 其中 x.a_id = y.a_ai AND y.c NOT LIKE '%'||x.b_id||'%'【问题讨论】:
-
您已标记三个 DBMS 产品。这是否意味着,查询应该在所有这些或任何一个中工作?
-
既然你提到了“postgresql”——我已经删除了
mysql和sql-server标签。 -
Paul 查询应该找到所有不正确的记录,其中列 C 具有错误的值 b_id。将 a_id 视为一个组,将 b_id 视为该组中的用户,而 C 只能包含来自其组的任意数量的用户,它不能来自另一个用户,如最后一行 id 为 7 的用户。可能有 444 和/或 555 。好的,感谢您删除标签
标签: sql postgresql