English 中文(简体)
Q. 查明完全含有的子集
原标题:SQL query to identify completely contained subset

我祝贺我的头脑提出以下问题的解决办法:

我的桌子有两个领域,即美国电算和电算中心。 For each USER_ 国际发展研究中心有1至5个。

让我们说,用户A与客户1 2和3有关。 我想提出一个问题,即让与所有这些客户有联系的其他用户返回。 它们可能与更多的客户有联系,但必须与A用户的所有客户建立联系。

例:用户B与客户的联系为1,2,3,4。 用户C与客户有1 2。 查询后应归还用户B,因为用户B与所有用户A客户有联系。 不应归还用户C,因为他只与用户A的一些客户(但并非全部客户)有联系。

这似乎是一个令人怀疑的简单问题,但对于我来说,我可以提出放弃我的制约因素的疑问。 是否有任何经验可帮助我?

最佳回答

2. 作出一些名称和数据型假设......

DECLARE
  @UserId  int
 ,@ClientCount  int

DECLARE @Clients as table
 (ClientId  int  not null)

--  All clients for the "target" user
INSERT @Clients
 select Clientid
 from MyTable
 where UserId = @userId

--  Track how many there are
SET @ClientCount = @@rowcount

--  List all users that have those clients
SELECT mt.UserId, count(*) HowMany
 from Mytable mt
  inner join @Clients cl
   on cl.ClientId = mt.Clientid
 where UserId <> @UserId
 group by mt.UserId
 having count(*) = @ClientCount

我没有一张表来测试这一说法,但应该稍作改动。

问题回答
SELECT uc.user_id, u.username, COUNT(*) as client_count
FROM user u
INNER JOIN user_client uc
USING (user_id)
WHERE uc.client_id IN (
  SELECT client_id
  FROM   user_client
  WHERE  user_id = {ID of user A}
)
GROUP BY uc.user_id, u.username
HAVING client_count = (
  SELECT COUNT(*)
  FROM   user_client
  WHERE  user_id = {ID of user A}
)

未经测试的、可能的话,我的SQL公司应该这样做。





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签