2013-06-24 8 views
2

Как написать запрос mysql для получения одного и того же поля. Мои данные таблицы следующие.Извлечение нескольких записей из одной таблицы

Nid title language tid 
1 aa en  1 
2 aa ar  1 
3 bb en  2 
4 bb ar  2 

Теперь я хочу показать поля, такие как nid, title, english nid, arabic nid.

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

Nid Title engilsh nid Arabic nid 
    1 aa 1    2 
    2 bb 3    4 
+0

Может вам сек как ваш желаемый результат? – KaeL

+0

Обновлен вопрос. Я не знаю, что это возможно или нет. Но я хочу, чтобы результат был таким. – user2368881

+0

Ваша первая колонка в желаемом выходе не имеет никакого смысла. Он не соответствует значениям в образцах данных для заголовка bb. Вы либо не нуждаетесь в нем как 'nid', либо просто номер строки/строки, который вы хотите. – peterm

ответ

0

Попробуйте

SELECT title, 
     MAX(CASE WHEN language = 'en' THEN nid END) english_nid, 
     MAX(CASE WHEN language = 'ar' THEN nid END) arabic_nid 
    FROM table1 
GROUP BY title 

Выход:

 
| TITLE | ENGLISH_NID | ARABIC_NID | 
------------------------------------ 
| aa |   1 |   2 | 
| bb |   3 |   4 | 

Вот SQLFiddle демо

+0

Этот код работал .. Большое вам спасибо :) – user2368881

+0

Вы более чем рады. Я рад, что смог помочь :) – peterm