Mysql SQL查询两个不同查询中的行值
我相信这个问题以前已经得到了回答,但我无法找到正确的搜索词来找到我的答案 我有一张桌子,比如:Mysql SQL查询两个不同查询中的行值,mysql,sql,Mysql,Sql,我相信这个问题以前已经得到了回答,但我无法找到正确的搜索词来找到我的答案 我有一张桌子,比如: USERNAME ACTIONNUM VALUE1 VALUE2 -------- ---------- ------ ------ Person1 Action1 0 1 Person1 Action1 1 1 Person1 Actio
USERNAME ACTIONNUM VALUE1 VALUE2
-------- ---------- ------ ------
Person1 Action1 0 1
Person1 Action1 1 1
Person1 Action1 1 1
Person1 Action2 0 1
Person1 Action2 1 1
Person2 Action3 0 1
Person2 Action3 1 1
Person3 Action4 1 1
对于本例,我想对0,1的VALUE1和VALUE2执行一次搜索,只给我用户名。所以第一次搜索结果是:Person1,Person2
然后,第二次搜索应该给我一个不同的操作编号,并计算值1,1的操作存在的次数,但只给我在第一次搜索中找到用户名的行
因此,对于本例,我希望查询返回:
USERNAME ACTIONNUM COUNT
-------- ---------- -----
Person1 Action1 2
Person1 Action2 1
Person2 Action3 1
因此跳过Person3,因为Person3不会从第一次搜索中返回,您可以在子查询中使用它:
select * from table where value1 = 1 and value2 = 1 and username in (
select username from table where value1 = 0 and value2 = 1
)
您可以在子查询中使用:
select * from table where value1 = 1 and value2 = 1 and username in (
select username from table where value1 = 0 and value2 = 1
)
您可以在子查询中使用:
select * from table where value1 = 1 and value2 = 1 and username in (
select username from table where value1 = 0 and value2 = 1
)
您可以在子查询中使用:
select * from table where value1 = 1 and value2 = 1 and username in (
select username from table where value1 = 0 and value2 = 1
)
改变这个答案,我误解了问题的一部分
SELECT username, actionnum, (select count(actionnum)
from test1 b
where b.value1=1
and b.value2=1
and b.username = a.username
and b.actionnum = a.actionnum)
FROM test1 a
WHERE value1 = 0 AND value2 = 1
order by 1, 2;
参见更改此答案,我误读了部分问题
SELECT username, actionnum, (select count(actionnum)
from test1 b
where b.value1=1
and b.value2=1
and b.username = a.username
and b.actionnum = a.actionnum)
FROM test1 a
WHERE value1 = 0 AND value2 = 1
order by 1, 2;
参见更改此答案,我误读了部分问题
SELECT username, actionnum, (select count(actionnum)
from test1 b
where b.value1=1
and b.value2=1
and b.username = a.username
and b.actionnum = a.actionnum)
FROM test1 a
WHERE value1 = 0 AND value2 = 1
order by 1, 2;
参见更改此答案,我误读了部分问题
SELECT username, actionnum, (select count(actionnum)
from test1 b
where b.value1=1
and b.value2=1
and b.username = a.username
and b.actionnum = a.actionnum)
FROM test1 a
WHERE value1 = 0 AND value2 = 1
order by 1, 2;
请参见尝试类似的方法
Select
UserName
, ActionNum
, Count(*) As Cnt
From MyTable
Where Value1 = 1
And Value2 = 1
And UserName In
(
Select Distinct UserName
From MyTable
Where Value1 = 0
And Value2 = 1
)
Group By
UserName
, ActionNum
试试这样的
Select
UserName
, ActionNum
, Count(*) As Cnt
From MyTable
Where Value1 = 1
And Value2 = 1
And UserName In
(
Select Distinct UserName
From MyTable
Where Value1 = 0
And Value2 = 1
)
Group By
UserName
, ActionNum
试试这样的
Select
UserName
, ActionNum
, Count(*) As Cnt
From MyTable
Where Value1 = 1
And Value2 = 1
And UserName In
(
Select Distinct UserName
From MyTable
Where Value1 = 0
And Value2 = 1
)
Group By
UserName
, ActionNum
试试这样的
Select
UserName
, ActionNum
, Count(*) As Cnt
From MyTable
Where Value1 = 1
And Value2 = 1
And UserName In
(
Select Distinct UserName
From MyTable
Where Value1 = 0
And Value2 = 1
)
Group By
UserName
, ActionNum
你可以试试像
SELECT
table.USERNAME,
table.ACTIONNUM,
COUNT(table.ACTIONNUM) as ACTIONNUMCOUNT
FROM
table
WHERE
table.VALUE1 = 1
AND
table.VALUE2 = 1
AND
USERNAME IN
(
SELECT DISTINCT USERNAME FROM table where value1 = 0 and value2 = 1
)
GROUP BY
table.ACTIONNUM
你可以试试像
SELECT
table.USERNAME,
table.ACTIONNUM,
COUNT(table.ACTIONNUM) as ACTIONNUMCOUNT
FROM
table
WHERE
table.VALUE1 = 1
AND
table.VALUE2 = 1
AND
USERNAME IN
(
SELECT DISTINCT USERNAME FROM table where value1 = 0 and value2 = 1
)
GROUP BY
table.ACTIONNUM
你可以试试像
SELECT
table.USERNAME,
table.ACTIONNUM,
COUNT(table.ACTIONNUM) as ACTIONNUMCOUNT
FROM
table
WHERE
table.VALUE1 = 1
AND
table.VALUE2 = 1
AND
USERNAME IN
(
SELECT DISTINCT USERNAME FROM table where value1 = 0 and value2 = 1
)
GROUP BY
table.ACTIONNUM
你可以试试像
SELECT
table.USERNAME,
table.ACTIONNUM,
COUNT(table.ACTIONNUM) as ACTIONNUMCOUNT
FROM
table
WHERE
table.VALUE1 = 1
AND
table.VALUE2 = 1
AND
USERNAME IN
(
SELECT DISTINCT USERNAME FROM table where value1 = 0 and value2 = 1
)
GROUP BY
table.ACTIONNUM
您是否尝试过任何操作?因此,对于特定操作,如果
VALUE1=0和VALUE2=1
不正确,这是否无关紧要?只要一个给定的用户名存在一次,我对SQL非常陌生,所以我尝试的所有东西都没有返回任何东西。我基本上可以分别执行每个查询,因此可以返回不同的用户名或actionnum的每个实例。我还没有找到任何简单的方法来以我想要的方式合并这些结果。@user2871467:潜水员的答案给了你正确的信息吗?或者您是否需要所有的ACTIONNUM
,即使不匹配这些值?我从表中的选择用户名ACTIONNUM,count(*)更改了我的答案,其中value1=0和value2=1按用户名分组ACTIONNUM;因为我误读了问题的一部分,所以我把它改成了下面的一个。sqlfiddle已附加。您尝试过任何操作吗?因此,如果某个特定操作的VALUE1=0和VALUE2=1不正确,这无关紧要吗?只要一个给定的用户名存在一次,我对SQL非常陌生,所以我尝试的所有东西都没有返回任何东西。我基本上可以分别执行每个查询,因此可以返回不同的用户名或actionnum的每个实例。我还没有找到任何简单的方法来以我想要的方式合并这些结果。@user2871467:潜水员的答案给了你正确的信息吗?或者您是否需要所有的ACTIONNUM
,即使不匹配这些值?我从表中的选择用户名ACTIONNUM,count(*)更改了我的答案,其中value1=0和value2=1按用户名分组ACTIONNUM;因为我误读了问题的一部分,所以我把它改成了下面的一个。sqlfiddle已附加。您尝试过任何操作吗?因此,如果某个特定操作的VALUE1=0和VALUE2=1不正确,这无关紧要吗?只要一个给定的用户名存在一次,我对SQL非常陌生,所以我尝试的所有东西都没有返回任何东西。我基本上可以分别执行每个查询,因此可以返回不同的用户名或actionnum的每个实例。我还没有找到任何简单的方法来以我想要的方式合并这些结果。@user2871467:潜水员的答案给了你正确的信息吗?或者您是否需要所有的ACTIONNUM
,即使不匹配这些值?我从表中的选择用户名ACTIONNUM,count(*)更改了我的答案,其中value1=0和value2=1按用户名分组ACTIONNUM;因为我误读了问题的一部分,所以我把它改成了下面的一个。sqlfiddle已附加。您尝试过任何操作吗?因此,如果某个特定操作的VALUE1=0和VALUE2=1不正确,这无关紧要吗?只要一个给定的用户名存在一次,我对SQL非常陌生,所以我尝试的所有东西都没有返回任何东西。我基本上可以分别执行每个查询,因此可以返回不同的用户名或actionnum的每个实例。我还没有找到任何简单的方法来以我想要的方式合并这些结果。@user2871467:潜水员的答案给了你正确的信息吗?或者您是否需要所有的ACTIONNUM
,即使不匹配这些值?我从表中的选择用户名ACTIONNUM,count(*)更改了我的答案,其中value1=0和value2=1按用户名分组ACTIONNUM;因为我误读了问题的一部分,所以我把它改成了下面的一个。sqlfiddle已附加。这几乎解决了它!它结合了我想要的列表,希望我也能解决它的其余部分。这几乎解决了它!它结合了我想要的列表,希望我也能解决它的其余部分。这几乎解决了它!它结合了我想要的列表,希望我也能解决它的其余部分。这几乎解决了它!它以我想要的方式组合了列表,希望我也能解决其余的问题。可能需要一个分组人
?就我所能理解的问题而言,现在在我看来是正确的。虽然还不清楚目的是什么。可能需要一个分组人吗?就我所能理解的问题而言,现在看起来对我来说是正确的。虽然还不清楚目的是什么。可能需要一个分组人吗?就我所能理解的问题而言,现在看起来对我来说是正确的。虽然还不清楚目的是什么。可能需要一个分组人吗?就我所能理解的问题而言,现在看起来对我来说是正确的。虽然还不清楚目的是什么。