MySQL ,3 простеньких зароса . :)

Discussion in 'PHP' started by Buffalon, 28 Nov 2008.

  1. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Нужно составить типа

    1) жокеев-победителей всех соревнований во всех видах состязаний;
    SELECT owner_horse.Jockey FROM tourney Where tourney.Place = '1';
    2) жокея, имеющего наименьшую сумму мест по всем соревнованиям;
    SELECT Jockey.FIO_jockey FROM Jockey ORDER BY `Rating_jockey` DESC LIMIT 1;
    3) жокеев, имеющего наименьшую сумму мест по каждому месту проведения
    соревнований;
    (Как прибавить сумму я знаю , а вот сразу прибавить и сравнить все суммы????)
    4) самую быструю лошадь – ту, которая имеет наименьшую удельную сумму мест
    (сумму мест, отнесенную к количеству соревнований);
    (ДОпустим place это место а owner лошадь ,допустим кол-во я узнал а вот как всех их сравнивать (допустим у меня 7 лошадей))
    5) жокея, который сменил наибольшее количество лошадей в соревнованиях.
    таблицы

    PHP:
    drop table if exists owner_horse;
    create table if not exists owner_horse (
                     
    Horse char(32) not null,
                     
    Owners char(32) not null,
                     
    Jockey char(32) not null,
                     
    Ippodrimy char(32) not null,
                     
    Competitions int(16) not null
                     
    )ENGINE=INNODB;
    create table if not exists horse (
                     
    id_horse int(3) not null,
                     
    Moniker char(20) not null,
                     
    FIO_owner char(20) not null,
                     
    Ippodrimy char(32) not null,
                     
    Sex ENUM("жеребец", "кобыла") not null,
                     
    primary key(id_horse),
                     
    FOREIGN KEY (FIO_owner) REFERENCES owner_horse(owner) ON UPDATE CASCADE
                     
    )ENGINE=INNODB;
    create table if not exists owner (
                     
    Id_owner int(3) not null,
                     
    FIO_owner char(20) not null,
                     
    Address_owner char(20) not null,
                     
    Phone_owner char(32) not null,                
                     
    primary key(Id_owner)
                     )
    ENGINE=INNODB;
    create table if not exists jockey (
                     
    Id_jockey int(3) not null,
                     
    FIO_jockey char(20) not null,
                     
    Address_jokey char(20) not null,
                     
    Date_jockey date not null,                
                     
    Rating_jockey int(4) not null,                
                     
    primary key(Id_jockey)
                     )
    ENGINE=INNODB;
    create table if not exists ippodromy (
                     
    Id_ippodromy int(3) not null,
                     
    Name_ippodromy char(20) not null,
                     
    Address_ippodromy char(20) not null,
                     
    Lenght_ippodromy int(16) not null,                
                     
    primary key(Id_ippodromy)
                     )
    ENGINE=INNODB;
    create table if not exists tourney (
                     
    Id_horse int(3) not null,
                     
    Id_jockey int(20) not null,
                     
    Id_ippodromy int(20) not null,
                     
    Date date not null,
                     
    N_drive int(3) not null,
                     
    Result float(3) not null,
                     
    Place int(3) not null,
                     
    primary key(N_drive),
                     
    FOREIGN KEY (Id_horse) REFERENCES owner_horse(Horse) ON UPDATE CASCADE,    
                     
    FOREIGN KEY (Id_jockey) REFERENCES jockey(Id_jockey) ON UPDATE CASCADE,
                     
    FOREIGN KEY (Id_ippodromy) REFERENCES ippodromy(Id_ippodromy) ON UPDATE CASCADE
                     
    )ENGINE=INNODB;
     
    #1 Buffalon, 28 Nov 2008
    Last edited: 28 Nov 2008