2012-01-07 4 views
1

У меня такая ситуация. У меня две таблицы mysql. Одна таблица «данных» и вторая таблица «mirror_data». Таблица «данные» состоит из столбцов «local» (в этом столбце хранятся только цифры). и это «mirror_data» таблицаПолучение информации из таблиц mysql

CREATE TABLE IF NOT EXISTS mirror_data 
    (
    id_mir INT(11) NOT NULL UNIQUE, 
    local VARCHAR(255), 
    local_mir VARCHAR(255), 
    id_data INT(11) NOT NULL DEFAULT 0 
    ); 

И, Что это вторая таблица означает => Я пометил, что местный столбец состоит все число и в этой (второй таблице mirror_data) включает в местной колонке того же информации (так же, как в таблице «данные»), но также содержит столбец local_mir, который отмечает имена людей, позволяет говорить, что это всего лишь несколько строк.

И вот ситуация => когда я получаю информацию из таблицы «данные», хочу проверить каждую информацию, если существует строка local_mir (из таблицы «mirror_data») для текущей локальной (из таблицы «данные») и если он существует, извлеките эту строку из local_mir вместо цифр (из таблицы «data» из локального столбца).

Есть идеи, как это сделать?

ответ

2

Я не совсем уверен, если я получу то, что вы хотите, но это что-то вроде этого?

SELECT 
    data.id, 
    case 
     when mirror_data.local_mir is not null then mirror_data.local_mir 
     else 
      data.local 
    end local 
FROM 
data 
LEFT JOIN 
mirror_data 
ON data.id = mirror_data.id_mir 

ИЛИ использовать функцию COALESCE ....

+0

спасибо за советы, я постараюсь сделать это :) – DaHaKa

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