【问题标题】:Getting results from multiple rows by comparing values in multiple column in Mysql通过比较Mysql中多列中的值从多行中获取结果
【发布时间】:2013-05-10 06:29:16
【问题描述】:

我想从具有 HomeTeam 和 AwayTeam 字段的夹具表中获取俱乐部的夹具列表,但是当我搜索时,它仅返回与搜索参数匹配的第一行。然而,当俱乐部在主场和客场比赛时,我想同时获得这两场比赛。 这是我的程序

CREATE DEFINER=root@localhost PROCEDURE GetClubFixtures(clubName varchar(45))
BEGIN
SELECT FixtureDate, Tournament, HomeTeam, AwayTeam, KickOff
FROM  fixture
WHERE SeasonID in
(select SeasonID from season where seasonType=1) 
and HomeTeam = ClubName 
or AwayTeam=ClubName
ORDER BY FixtureDate;

只返回一行,如下图所示

'2013-05-15', 'FSL', 'Sports Club Victoria University', 'Villa Sports Club', 05:00:00

【问题讨论】:

  • 请提供程序

标签: mysql sql


【解决方案1】:

基本上在您使用的PROCEDURE 版本中

where SeasonID in
(select SeasonID from season where seasonType=1) 
and HomeTeam = ClubName 
or AwayTeam=ClubName

但我认为你想要的是这样的

where SeasonID in
(select SeasonID from season where seasonType=1) 
and 
(HomeTeam = ClubName 
or AwayTeam=ClubName)

因此尝试以下操作procedure

CREATE DEFINER=root@localhost PROCEDURE GetClubFixtures(clubName varchar(45))
BEGIN
SELECT FixtureDate, Tournament, HomeTeam, AwayTeam, KickOff
FROM  fixture
WHERE SeasonID in
(select SeasonID from season where seasonType=1) 
and 
(HomeTeam = ClubName 
or AwayTeam=ClubName)
ORDER BY FixtureDate;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多