2015-11-30 5 views
0

Это моя структура таблицы, Имени таблицы представляет собой (отношения) структуры таблицыSql запроса -throwing нежелательного результата

Id | лидер | Абонентская

мой запрос

SELECT 
CASE WHEN relations.subscriber IN ('9') THEN relations.leader 
     ELSE 'nonfollowers' END AS Continent,subscriber 
     FROM relations 
WHERE relations.leader=9 OR relations.subscriber=9 limit 12 

Выход: -

<table> 
 
    <tr> 
 
    <th>Continent</th> 
 
    <th>Subscriber</th> 
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td>9</td> 
 
    </tr> 
 
    <tr> 
 
    <td>3</td> 
 
    <td>9</td> 
 
    <tr> 
 
    </tr> 
 
    <td>nonfollowers</td> 
 
    <td>2</td> 
 
    <tr> 
 
    </tr> 
 
    <tr> 
 
     <td>nonfollowers</td> 
 
     <td>3</td> 
 

 
    </tr> 
 
    <tr> 
 
     <td>nonfollowers</td> 
 
     <td>8</td> 
 
     <tr> 
 
     </tr> 
 
     <tr> 
 
     <td>nonfollowers</td> 
 
     <td>19</td> 
 
     </tr> 
 
</table>

Желаемый результат:

<table> 
 
    <tr> 
 
    <th>Continent</th> 
 
    <th>Subscriber</th> 
 
    </tr> 
 
    
 
    </tr> 
 
    <td>followers</td> 
 
    <td>2</td> 
 
    <tr> 
 
    </tr> 
 
    <tr> 
 
     <td>followers</td> 
 
     <td>3</td> 
 

 
    </tr> 
 
    <tr> 
 
     <td>nonfollowers</td> 
 
     <td>8</td> 
 
     <tr> 
 
     </tr> 
 
     <tr> 
 
     <td>nonfollowers</td> 
 
     <td>19</td> 
 
     </tr> 
 
</table>

Kind Note :Please run the snippets to check the results. 
9 is userid i am considering directly now . 

Мне нужны последователи для идентификатора пользователя 9 и на тот же запрос мне нужно, чтобы проверить, кому он следует. , поэтому я пробовал над вещами, но, к сожалению, с большим трудом все еще не нахожусь на правильном пути.

ответ

0
SELECT 
CASE WHEN r.leader IN ('9') THEN 'followers' 
     WHEN r.subscriber = '9' THEN r.leader 
     ELSE 'nonfollowers' END AS Continent,r.subscriber 
     FROM relations r where r.leader = 9 OR r.subscriber = 9 
+0

Отсутствие выходного сигнала, Я пробовал это раньше. , пожалуйста, проверьте результат здесь -> http://sqlfiddle.com/#!9/0fa7e/1 вместо 9,9 в подписчике он должен иметь подписчиков в подписчике 2 строки, , а затем подписчиков в подписке 3 строки .as упомянутый в вопросе желаемый выпуск. i.e первые две строки с этим sql в нежелательных, а затем 3rs строка и 4-я строка должны иметь последователей, так как существуют id 2 и 3. – user3177068

+0

Id | подписчик | лидер должен быть id | лидер | абонент. попытается отредактировать мой ответ. –

+0

Я объяснил с выходом, который я получаю с желаемым выходом. ваш ответ был просто заменой идентификатора лидера последовательной строкой не является решением. Я намеренно печатал идентификатор там вместо строки, чтобы отлаживать его. в любом случае спасибо и ура :) – user3177068

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