如果您想了解从另一个表中删除ID不匹配的sql行的相关知识,那么本文是一篇不可错过的文章,我们将对删除两张表中id相同的数据进行全面详尽的解释,并且为您提供关于c#–如何从另一个列表中删除列表中的字符
如果您想了解从另一个表中删除 ID 不匹配的 sql 行的相关知识,那么本文是一篇不可错过的文章,我们将对删除两张表中id相同的数据进行全面详尽的解释,并且为您提供关于c# – 如何从另一个列表中删除列表中的字符串?、mysql – 如何从两个表中获取不匹配的记录、MySQL 从一个表中选择所有列,从另一个表中选择一些列、MySQL 联合并从另一个表中计数的有价值的信息。
本文目录一览:- 从另一个表中删除 ID 不匹配的 sql 行(删除两张表中id相同的数据)
- c# – 如何从另一个列表中删除列表中的字符串?
- mysql – 如何从两个表中获取不匹配的记录
- MySQL 从一个表中选择所有列,从另一个表中选择一些列
- MySQL 联合并从另一个表中计数
从另一个表中删除 ID 不匹配的 sql 行(删除两张表中id相同的数据)
我正在尝试删除 mysql 表中的孤立条目。
我有 2 个这样的表:
表files
:
| id | ....------------| 1 | ....| 2 | ....| 7 | ....| 9 | ....
表blob
:
| fileid | ....------------| 1 | ....| 2 | ....| 3 | ....| 4 | ....| 4 | ....| 4 | ....| 9 | ....
fileid
和id
列可用于将表连接在一起。
我想删除表blob
中fileid
找不到的所有行files.id
。
因此,使用上面的示例将删除blob
表中的行:3 和 4(s)。
答案1
小编典典使用 LEFT JOIN/IS NULL:
DELETE b FROM BLOB b LEFT JOIN FILES f ON f.id = b.fileid WHERE f.id IS NULL
使用不存在:
DELETE FROM BLOB WHERE NOT EXISTS(SELECT NULL FROM FILES f WHERE f.id = fileid)
使用不在:
DELETE FROM BLOB WHERE fileid NOT IN (SELECT f.id FROM FILES f)
警告
尽可能在事务中执行 DELETE(假设支持 - IE:不在 MyISAM 上),以便在出现问题时可以使用回滚来恢复更改。
c# – 如何从另一个列表中删除列表中的字符串?
我想删除listA中listB中的字符串,但我想以这种方式执行此操作:
如果listA包含:“bar”,“bar”,“foo”
和listB包含:“bar”
它只删除1 bar,结果将是:
“bar”,“foo”
我写的代码删除所有“栏”:
List<string> result = listA.Except(listB).ToList();
解决方法
foreach (var word in listB) listA.Remove(word);
Remove方法一次只删除一个元素,并且在找不到该项时不会抛出异常(但返回false):https://msdn.microsoft.com/en-us/library/cd666k3e(v=vs.110).aspx
mysql – 如何从两个表中获取不匹配的记录
请参阅以下两个示例表:
表格1:
id acc_no name
------------------------
1 14 aaaa
2 16 bbbb
3 18 ccccc
4 25 wwww
5 27 xxxxxxx
6 28 zzzzzzz
表2:
sr no acc_no amount
----------------------
1 14 2000
2 16 2344
3 18 3200
我需要获得基于acc_no的记录,例如表1中不匹配的记录:
OUTPUT:
id acc_no name
---------------------
4 25 wwww
5 27 xxxxxxx
6 28 zzzzzzz
当我尝试使用以下查询时,结果不可靠:
SELECT t1.*
FROM table1 t1
LEFT OUTER JOIN table2 t2 ON t1.acc_no = t2.acc_no
WHERE t2.acc_no IS NULL
提出你的建议.什么是正确的SQL查询ti得到以上输出?
SELECT *
FROM table1 t1
WHERE t1.acc_no NOT IN (SELECT acc_no FROM table2)
MySQL 从一个表中选择所有列,从另一个表中选择一些列
如何使用 JOIN 从一个表中选择所有列并从另一个表中选择一些列?在 MySQL 中。
MySQL 联合并从另一个表中计数
如何解决MySQL 联合并从另一个表中计数?
我有四个表:users
、members
、visitors
和 teams
users table
user_id | name
---------------------
1 | John
2 | Jimmy
3 | Jack
members table
user_id | fingerprint_id
---------------------
1 | 20
2 | 21
3 | 22
visitors table
id | fingerprint_id
---------------
1 | 20
2 | 20
3 | 22
4 | 21
5 | 21
6 | 22
teams table
id | user_id
---------------
1 | 1
2 | 1
3 | 2
4 | 3
5 | 2
6 | 1
如何计算另一个表中的用户数?喜欢下面的结果
count
user_id | total in visitors| total in teams
-------------------------------
John | 2 | 3
Jimmy | 2 | 2
Jack | 2 | 1
提前致谢。
解决方法
SELECT teams.user_id,count_visitors,count(1) FROM (
SELECT members.user_id,visitors_count.count_visitors FROM
(SELECT fingerprint_id,count(1) as count_visitors
FROM visitors
GROUP BY fingerprint_id) as visitors_count)
JOIN members ON visitors_count.fingerprint_id = members.fingerprint_id) as members_visitors
JOIN teams on teams.user_id = members_visitors.user_id GROUP BY team.user_id
,
处理此问题的标准方法是在两个单独的子查询中对访问者和团队表执行聚合。然后加入这些子查询以引入聚合:
SELECT
u.user_id,COALESCE(v.total_visitor,0) AS `total in visitors`,COALESCE(t.total_team,0) AS `total in teams`
FROM users u
INNER JOIN members m
ON m.user_id = u.user_id
LEFT JOIN
(
SELECT fingerprint_id,COUNT(*) AS total_visitor
FROM visitors
GROUP BY fingerprint_id
) v
ON v.fingerprint_id = m.fingerprint_id
LEFT JOIN
(
SELECT user_id,COUNT(*) AS total_team
FROM teams
GROUP BY user_id
) t
ON t.user_id = m.user_id;
关于从另一个表中删除 ID 不匹配的 sql 行和删除两张表中id相同的数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于c# – 如何从另一个列表中删除列表中的字符串?、mysql – 如何从两个表中获取不匹配的记录、MySQL 从一个表中选择所有列,从另一个表中选择一些列、MySQL 联合并从另一个表中计数等相关内容,可以在本站寻找。
本文标签: