我有一个包含两个(实际上更多)表的数据库:帐户和资产。这种关系是多个资产到一个帐户。
现有数据示例:
Account Asset
Abbot EZ111
Abbot 7000261
Anderson EZ431
Barton EZ207
Barton 8000400
Charlie 8000465
Charlie EZ576
Dickens EZ420
Elmer EZ982
我想找到所有具有以“EZ”开头的资产,但不具有以“7”或“8”开头的资产的帐户。
所以对于上面的数据,我期待的结果是:
Account Asset
Anderson EZ431
Dickens EZ420
Elmer EZ982
免责声明:显然我不是靠做 SQL 为生的,但我从 W3 站点学到了很多东西。我想不通的是这个查询的基本结构。我知道如何进行 Join,但我不知道如何两次查询同一列。
对不起,如果我对这个网站有点陌生,但我主要使用 InforCRM 中的创建组。像这样的查询似乎超出了群组“搜索条件”功能的能力范围。
此致,
蒂姆
答案 0 :(得分:0)
你的措辞方式,我建议 static void Main(string[] args)
{
int numStudents = 5;
student[] std = new student[numStudents];
for (int n = 0; n < numStudents ; n++) {
Console.WriteLine("Enter the first name of student " + (n + 1));
std[n].fName = Console.ReadLine();
Console.WriteLine("Enter the last name of student " + (n + 1));
std[n].lName = Console.ReadLine();
Console.WriteLine();
std[n].id = n + 1;
std[n].gpa = 0;
}
gpa(std);
printList(std);
}
:
not exists
答案 1 :(得分:0)
从表名中选择* 其中像“EZ%”这样的资产和账户不在(从表名中选择账户,其中像“7%”这样的资产或像“8%”这样的资产)
答案 2 :(得分:0)
其他人打败了我,但这里有一个完整的工作示例,基于我认为您的数据可能是什么样子
https://www.db-fiddle.com/f/8R6CZ36vjZgCUCdqU3DRi/1
SELECT ACT.ACCOUNT, AST.ASSET
FROM ACCOUNT ACT
INNER JOIN ASSET AST ON ACT.ACCOUNT = AST.ACCOUNT
WHERE AST.ASSET LIKE 'EZ%'
AND ACT.ACCOUNT NOT IN (
SELECT ACCOUNT FROM ASSET WHERE ASSET LIKE '7%' OR ASSET LIKE '8%'
);