Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
15-1145438911
foll
2006-04-19 13:28
2006.05.14
плагиат


3-1142616387
Silver...
2006-03-17 20:26
2006.05.14
Могу ли? Если да то как? Послать определенное сообшение...


2-1144450403
nickmas
2006-04-08 02:53
2006.05.14
Проблема с офисом 2000


15-1145206429
geserx
2006-04-16 20:53
2006.05.14
Работа с e--mail на Delphi


11-1126175496
GMax
2005-09-08 14:31
2006.05.14
TKOLDateTimePicker mck errors





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский