Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 选择除重复之外的所有值_Android_Sql_Sqlite - Fatal编程技术网

Android 选择除重复之外的所有值

Android 选择除重复之外的所有值,android,sql,sqlite,Android,Sql,Sqlite,我有三张桌子。 第一名称:ExTable。列:idinteger,nametext -------------------- | id | name | -------------------- | 1 | exA | | 2 | exB | | 3 | exC | -------------------- ------------------- | id | name | ------------------- |

我有三张桌子。 第一名称:ExTable。列:idinteger,nametext

--------------------
|  id  |    name |
--------------------
|  1   |    exA    |
|  2   |    exB    |
|  3   |    exC    |
--------------------
-------------------
|  id  |    name  |
-------------------
|  1   |    first |
|  2   |    second|
|  3   |    third |
-------------------
第二:名称:CerTable。列:idinteger,nametext

--------------------
|  id  |    name |
--------------------
|  1   |    exA    |
|  2   |    exB    |
|  3   |    exC    |
--------------------
-------------------
|  id  |    name  |
-------------------
|  1   |    first |
|  2   |    second|
|  3   |    third |
-------------------
第三:名称:CerExTable。列:idinteger,id\u cerinteger from CerTable,id\u exinteger-from ExTable

----------------------------------
|  id  |      id_cer     | id_ex |
----------------------------------
|  1   |    1 (first)    |1 (exA)|
|  2   |    1 (first)    |2 (exB)|
|  3   |    1 (first)    |3 (exC)|
|  3   |    2 (second)   |1 (exA)|
|  3   |    2 (second)   |3 (exC)|
|  3   |    3 (third)    |2 (exB)|
---------------------------------
所以,我想选择id_cer=2和id_ex的数据=不平等!1和3。所以,我想得到下一个值:exB。如果id\u cer=3,我想得到:exA,exC,如果id\u cer=1,我想得到null

我的SQL查询:

SELECT ExTable.id, ExTable.name FROM ExTable, CerExTable WHERE CerExTable.id_cer = 2 AND CerExTable.id_ex != ExTable.id
预期结果:

--------------------
|  id  |    name   |
--------------------
|  2   |    exB    |
--------------------
但结果是:

--------------------
|  id  |    name   |
--------------------
|  2   |    exB    |
|  3   |    exC    |
|  1   |    exA    |
|  2   |    exB    |
--------------------
因为此查询首先获取exA-exB、exC之外的数据,然后获取C-exA、exB之外的数据


如何获取数据异常,而不是一次获取两行数据?

如果您更改了select putting an*,您将看到您实际上在执行更复杂的查询。结果是:

从ExTable、CerExTable中选择*,其中CerExTable.id\u cer=2和CerExTable.id\u ex!=ExTable.id

所有这些行都满足您要查询的WHERE条件

实现此结果的解决方案是在同一查询中使用2个选择:


选择*FROM ExTable WHERE ExTable.id NOT IN SELECT CerExTable.id_ex FROM CerExTable WHERE CerExTable.id_cer=2

这是你第二次发布这个问题,我仍然不知道你想要完成什么。我可能不够聪明。