Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с запросом =) / 6 сообщений из 6, страница 1 из 1
01.11.2016, 16:21
    #39339097
KuJIT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом =)
Две таблицы:
Код: sql
1.
CREATE TABLE "Tournaments" ( `id`, `name`, `SportID`)



и
Код: sql
1.
CREATE TABLE "TournamentSynonyms" ( `id` , `TournamentID`, `LocalTournamentName`, `SportID`)



В первой таблице хранятся "оригиналы" чемпионатов, во второй - "синонимы" для разных источников. Нужен запрос, который бы выбрал все те "оригиналы", на которые не ссылается ни один "синоним". Т.е. что-то вроде

Код: sql
1.
SELECT id FROM Tournaments WHERE Tournaments.id (не лежит в) TournamentSynonyms.TournamentID

Надеюсь, суть задачи доступно донёс. По логике, вроде бы как, нужно сначала выбрать те "оригиналы", у которых копии есть

Код: sql
1.
2.
3.
SELECT id FROM Tournaments 
INNER JOIN TournamentSynonyms ON Tournaments.id = TournamentSynonyms.TournamentID 
WHERE  TournamentSynonyms.SportID = 'const'  AND Tournaments.SportID = 'const'

А потом как-то из всех "оригиналов" вычесть то, что получилось. Но я без понятия, как это сделать.
...
Рейтинг: 0 / 0
01.11.2016, 16:35
    #39339118
KuJIT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом =)
Стоило сформулировать вопрос в виде текста, как сформировался запрос к гуглу. Короче, EXCEPT всё решает =)
...
Рейтинг: 0 / 0
01.11.2016, 18:09
    #39339236
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом =)
KuJIT,

Код: sql
1.
NOT IN 

не предлагать :)

Код: sql
1.
SELECT id FROM Tournaments WHERE Tournaments.id Not in (Select  TournamentID from TournamentSynonyms)
...
Рейтинг: 0 / 0
02.11.2016, 13:07
    #39339871
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом =)
KuJIT,

Код: sql
1.
2.
3.
4.
5.
6.
SELECT t.id
FROM Tournaments t
WHERE not exists(select ts.TournamentID
                 from TournamentSynonyms ts
                 where ts.TournamentID = t.id
                       and ts.SportID = t.SportID)
...
Рейтинг: 0 / 0
02.11.2016, 13:41
    #39339925
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом =)
VSVLAD,

если связь только по TournamentID зачем усложнять?
...
Рейтинг: 0 / 0
02.11.2016, 19:50
    #39340287
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом =)
pit_alex,

Хз... в схеме поля есть, мало ли как оно устроено там у автора
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с запросом =) / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]