2016-02-11 2 views
0

Мне нужно совместить 2 результата из SELECT операторов, которые выглядят в одной таблице.Sqlite - объединение 2 оператора SELECT из той же таблицы

У меня есть работы, но я уверен, что есть лучший способ сделать это.

SELECT 
    games._id,win.winner,deal.dealer 
FROM 
    games, 
    (SELECT 
     players.name as winner 
    FROM 
     games, players 
    WHERE 
     players._id = games.winner 
     AND games._id = 2) AS win, 
    (SELECT 
     players.name as dealer 
    FROM 
     games, players 
    WHERE 
     players._id = games.dealer 
     AND games._id = 2) AS deal 
WHERE 
    games._id = 2 

Благодарим за помощь в оптимизации этого запроса.

EDIT:

Схема для таблиц:

CREATE TABLE games 
(
    _id INTEGER PRIMARY KEY, 
    winner integer, 
    dealer integer 
) 

CREATE TABLE players 
(
    _id INTEGER PRIMARY KEY, 
    name text 
) 
+0

Этот запрос будет трудно анализировать без правильно взгляните на схему базы данных. Вы должны указать, что – Jeff

ответ

0

Что-то, как показано ниже (непроверенный код) должен работать:

SELECT g._id,p1.name AS winner,p2.name AS dealer 
FROM games AS g join players AS p1 ON p1._id = g.winner 
JOIN players AS p2 on p2._id = g.dealer 
WHERE g._id = 2 
+0

Я тестирую его, но он не работает; нет такой колонки: p1.winner: SELECT g._id, p1.winner, p2.dealer ОТ игр AS g присоединяются к игрокам AS p1 ON p1._id = g.winner JOIN players AS p2 on p2._id = g.dealer WHERE g._id = 2 – kreacher

+0

Мой плохой! Я изменил свой запрос. Пожалуйста, проверьте сейчас. – Harsh

Смежные вопросы