2011-12-29 2 views
3

Я хочу извлечь два типа данных, которые хранятся в одном столбце таблицы, и отображать их в двух столбцах. Я делаю много поиска и много тестов, но ничего не работает. Это может быть легко сделать ...Mysql выбрать и отобразить два столбца

Это мой стол:

| id | field_id | user_id | value   | 
| 175 |  65 |  3 | 48.8984188201264 | 
| 173 |  65 |  2 | 37.9841493  | 
| 177 |  65 |  4 | 48.8440603  | 
| 179 |  65 |  5 | 48.8407529  | 
| 174 |  66 |  2 | 23.7279843  | 
| 176 |  66 |  3 | 2.25568230749569 | 
| 178 |  66 |  4 | 2.3730525  | 
| 180 |  66 |  5 | 2.3213214  | 

Я хочу, чтобы отобразить широту (FIELD_ID = 65) в одном поле и долготы (FIELD_ID = 66) в другую путем присоединение к user_id.

Два выбор:

select value as longitude 
from wp_bp_xprofile_data 
where field_id=66; 

select value as latitude 
from wp_bp_xprofile_data 
where field_id=65; 

| longitude  | 
| 23.7279843  | 
| 2.25568230749569 | 
| 2.3730525  | 
| 2.3213214  | 

| latitude   | 
| 48.8984188201264 | 
| 37.9841493  | 
| 48.8440603  | 
| 48.8407529  | 

Как я могу отобразить эти данные в одну таблице с двумя колонками?

Благодаря

+0

Как идентификатор идентификатора ids имеет длину долготы + 1? –

ответ

2

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

select 
    t1.user_id, 
    t1.value as latitude, 
    t2.value as longitude 
from 
    wp_bp_xprofile_data t1 
    inner join wp_bp_xprofile_data t2 on 
     t1.user_id = t2.user_id 
where 
    t1.field_id = 65 
    and t2.field_id = 66 

Таким образом, вы не втягивая подзапросов, и ваш запрос немного понятнее, по крайней мере, для меня.

+0

Действительно, это проще понять. И тебе спасибо. – Arystark

2
SELECT t1.user_id, latitude, longitude 
FROM 
(SELECT user_id, value as latitude 
FROM wp_bp_xprofile_data 
WHERE field_id = 65) t1 
INNER JOIN 
(SELECT user_id, value as longitude 
FROM wp_bp_xprofile_data 
WHERE field_id = 66) t2 ON t1.user_id = t2.user_id 
+0

Большое спасибо! Это именно то, что я хочу. – Arystark

+0

Рад помочь, вы, вероятно, должны отредактировать свой вопрос, чтобы сказать, что вы присоединяетесь к user_id, потому что я должен был догадаться, что –

+0

Готово! Еще раз спасибо. – Arystark