写一个查询得到如下所示的输出
Write a query to get output as shown below
一个table名字玩家在table中有一些列&数据如下:
**PID**|**PNAME**|**CITY**|**TEAM**|**SALARY**|**NO_OF_PENALTIES**
1001 ozil istanbul germany 500000 1
1002 messi madrid arsenal 500000 2
1003 ronaldo manc uk 600000 1
1004 puyol sussex germany 400000 3
1005 fabregas manchester uk 450000 2
1006 costa ankara turkey 400000 3
1007 beckham london uk 600000 2
这是 table.Write 我要记录的查询 如果团队名称是 "germany" & no_of_penalties=1 那么我想得到 record.If 团队名称是 "uk" & no_of_penalties=2 那我就不想获取记录了。
根据上述记录的意思是,根据查询,我想获得具有 pid=1001 和 pid=1003 的记录。
但是当我如下所示编写查询时:
select * from player where (team='germany' and no_of_penalties=1) or not (team='uk' and no_of_penalties=2) and team in ('germany','uk');
然后在执行上面的查询后,输出看起来像 pid=1001、1003、1004,如下所示
**PID**|**PNAME**|**CITY**|**TEAM**|**SALARY**|**NO_OF_PENALTIES**
1001 ozil istanbul germany 500000 1
1003 ronaldo manc uk 600000 1
1004 puyol sussex germany 400000 3
那么你能帮我解决这个问题吗?
试试这个
select * from player
where (team='germany' and no_of_penalties=1)
or (team='uk' and no_of_penalties!=2)
这些是互斥的数据,所以应该是AND(而不是OR)。试试这个
SELECT *
FROM player
WHERE (
team = 'germany'
AND no_of_penalties = 1
)
AND NOT (
team = 'uk'
AND no_of_penalties = 2
)
AND team IN (
'germany'
,'uk'
) );
Select * 来自 Player Where
(团队 = 'Germany' 和 No_Of_Penalties = 1)
并不是
(团队 = "UK" AND No_Of_Penalties = 2)
如果我错了,请原谅我,因为我发现你的问题很难理解,但是你把 "If team name is "uk" & no_of_penalties=2 那么我不想得到记录" 的意思您不想要 2 的值,但是您选择的答案将显示值为 2
的答案
试试看
select * from player
where (team='germany' and no_of_penalties=1)
union all
select * from player
where (team='uk' and no_of_penalties!=2)
一个table名字玩家在table中有一些列&数据如下:
**PID**|**PNAME**|**CITY**|**TEAM**|**SALARY**|**NO_OF_PENALTIES**
1001 ozil istanbul germany 500000 1
1002 messi madrid arsenal 500000 2
1003 ronaldo manc uk 600000 1
1004 puyol sussex germany 400000 3
1005 fabregas manchester uk 450000 2
1006 costa ankara turkey 400000 3
1007 beckham london uk 600000 2
这是 table.Write 我要记录的查询 如果团队名称是 "germany" & no_of_penalties=1 那么我想得到 record.If 团队名称是 "uk" & no_of_penalties=2 那我就不想获取记录了。 根据上述记录的意思是,根据查询,我想获得具有 pid=1001 和 pid=1003 的记录。 但是当我如下所示编写查询时:
select * from player where (team='germany' and no_of_penalties=1) or not (team='uk' and no_of_penalties=2) and team in ('germany','uk');
然后在执行上面的查询后,输出看起来像 pid=1001、1003、1004,如下所示
**PID**|**PNAME**|**CITY**|**TEAM**|**SALARY**|**NO_OF_PENALTIES**
1001 ozil istanbul germany 500000 1
1003 ronaldo manc uk 600000 1
1004 puyol sussex germany 400000 3
那么你能帮我解决这个问题吗?
试试这个
select * from player
where (team='germany' and no_of_penalties=1)
or (team='uk' and no_of_penalties!=2)
这些是互斥的数据,所以应该是AND(而不是OR)。试试这个
SELECT *
FROM player
WHERE (
team = 'germany'
AND no_of_penalties = 1
)
AND NOT (
team = 'uk'
AND no_of_penalties = 2
)
AND team IN (
'germany'
,'uk'
) );
Select * 来自 Player Where (团队 = 'Germany' 和 No_Of_Penalties = 1) 并不是 (团队 = "UK" AND No_Of_Penalties = 2)
如果我错了,请原谅我,因为我发现你的问题很难理解,但是你把 "If team name is "uk" & no_of_penalties=2 那么我不想得到记录" 的意思您不想要 2 的值,但是您选择的答案将显示值为 2
的答案试试看
select * from player
where (team='germany' and no_of_penalties=1)
union all
select * from player
where (team='uk' and no_of_penalties!=2)