Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

Проблема с SQL   Найти похожие ветки 

 
xayam ©   (2006-03-18 15:27) [0]

Есть такие таблицы:
COUNTRIES, GAMES, MOVES, PEOPLE, RESULTS, STATUSS,TOWNS, TYPESGAMES
GAMES.ID_P1  INTEGER Белые - ссылка на значение PEOPLE.ID_People (People содержит полную информацию об игроке, такие как, имя, фамилия, рейтинг, логин, пароль и т.д.)
GAMES.ID_P2  INTEGER Черные - ссылка на значение PEOPLE.ID_People

Собственно вопрос. Как получить в результате запроса select два столбца, содержащих имена игроков из таблицы People (People.Name), соответствующие определенной партии (строка в Games)? Короче говоря имена противников.

Моих знаний в SQL хватило только на это:
SELECT NAME, SURNAME, RATING, STATUSS.DESCRIP, RESULTS.DESCRIP, TYPESGAMES.DESCRIP, GAMES.TIMEGAME, GAMES.INCR
FROM GAMES, TYPESGAMES, STATUSS, PEOPLE, RESULTS
WHERE
  (
     (
        (GAMES.ID_P1 = PEOPLE.ID_PEOPLE)
     or
        (GAMES.ID_P2 = PEOPLE.ID_PEOPLE)
     )
  and
     (GAMES.STATUS = STATUSS.ID_STATUS)
  and
     (GAMES.TYPEGAME = TYPESGAMES.ID_TYPESGAME)
  and
     (GAMES.RESULT = RESULTS.ID_RESULT)
  )


Результат:
NAME SURNAME RATING DESCRIP DESCRIP1 DESCRIP2
TIMEGAME INCR
Андрей Иванов              1600 вызов  блиц
5 5
Павел Сергеевич 1782 вызов  блиц
5 5
sasha sash        2000 вызов  блиц
5 0
Петр Андреевич 2110 вызов  блиц
5 0
Павел Сергеевич 1782 вызов  блиц
5 0
Марина Бородина 1900 вызов  блиц
5 0

В таблице Games три строки.


 
vovnuke ©   (2006-03-18 15:51) [1]

псевдонимы таблиц


 
atruhin ©   (2006-03-18 15:54) [2]

Ну и в чем вопрос? Получил и хорошо! Что не устраивает то?
PS. Ты не мог получить такой результат, т.к. кол-во запрашиваемых полей не соответствует кол-ву показанных тобой.


 
xayam ©   (2006-03-18 15:59) [3]

А вроде псевдонимы, это когда в разных таблицах поля с одинаковыми именами, а у меня в одной таблице (People.Name)


 
xayam ©   (2006-03-18 16:00) [4]


> atruhin ©   (18.03.06 15:54) [2]

Как это? Ровно 8


 
xayam ©   (2006-03-18 16:05) [5]


> Что не устраивает то?

Нужно что то типа этого:
Name1 Rating1 Name2 Rating2 TIMEGAME INCR
Андрей 1600    Павел  1782         5          5          ...


 
xayam ©   (2006-03-18 16:10) [6]


> PS. Ты не мог получить такой результат, т.к. кол-во запрашиваемых
> полей не соответствует кол-ву показанных тобой.

Точнее в результате одно поле содержит пустое значение (Result), поскольку игра еще не началась - это только "вызов"


 
vovnuke ©   (2006-03-18 16:13) [7]

select t1.p1 as t1p1, t2.p2 as t2p2
from games t1, games t2, people
where t1.p1 = people.p and t2.p2 = people.p


 
atruhin ©   (2006-03-18 16:18) [8]

Ты так и не ответил, что тебу нужно получить, что не устраивает в том что ты получил?


 
xayam ©   (2006-03-18 16:19) [9]


> vovnuke ©   (18.03.06 16:13) [7]

А что такое as?


 
xayam ©   (2006-03-18 16:29) [10]


> atruhin ©   (18.03.06 16:18) [8]

А ты все прочитал?))


 
vovnuke ©   (2006-03-18 16:32) [11]

я не знаю как насчет IB6.x, но вообще в SQL это то, как я хочу назвать это поле


 
xayam ©   (2006-03-18 16:35) [12]


> vovnuke ©

На твой запрос - результат пустой


 
xayam ©   (2006-03-18 16:43) [13]

Кстати он такой же как у меня только OR на AND поменять


 
vovnuke ©   (2006-03-18 16:43) [14]

Извиняюсь, за ошибку (не правильно понял связи), вот так:
select games.p1, games.p2
from games, people p1, people p2
where games.p1 = p1.p and games.p2 = p2.p


 
xayam ©   (2006-03-18 16:48) [15]

О! Это уже ближе к истине, щас подкорректирую


 
xayam ©   (2006-03-18 16:56) [16]

Окончательный вариант:
SELECT p1.NAME, p1.SURNAME, p1.RATING,
      p2.NAME, p2.SURNAME,  p2.RATING,
      STATUSS.DESCRIP, RESULTS.DESCRIP, TYPESGAMES.DESCRIP,
      GAMES.TIMEGAME, GAMES.INCR
FROM GAMES, TYPESGAMES, STATUSS, PEOPLE p1, PEOPLE p2, RESULTS
WHERE
  (  GAMES.ID_P1 = p1.ID_PEOPLE
  and
     GAMES.ID_P2 = p2.ID_PEOPLE
  and
     GAMES.STATUS = STATUSS.ID_STATUS
  and
     GAMES.TYPEGAME = TYPESGAMES.ID_TYPESGAME
  and
     GAMES.RESULT = RESULTS.ID_RESULT
  )


Спасибо vovnuke


 
Жумабек   (2006-03-23 14:14) [17]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.035 c
15-1145346985
Сайбель Алексей
2006-04-18 11:56
2006.05.14
Difference Algorithm and Its Variations


15-1145311792
pargo
2006-04-18 02:09
2006.05.14
Два компьютера и одна антивирусная программа


2-1145651181
Галинка
2006-04-22 00:26
2006.05.14
Где найти исключения/ошибки в Дельфи


11-1126114007
KirillT
2005-09-07 21:26
2006.05.14
Открытие програмным путем общего доступа к папке на своей машине


4-1140421018
DrNemo
2006-02-20 10:36
2006.05.14
Загрузка с интернета с проверкой размера файла после загр