2013-11-07 2 views
1

Я хочу выбрать результат из другой базы данных на основе значения подстроки из столбцов. Вот мой стол студент:Mysql Как создать имя столбца из результата выбора

Original_student  Other_student 
1010173     1240240 
1010173     1240249 

3-я цифра номера будет использоваться для различения базы данных. например. Я хочу, чтобы этот запрос будет

select original_student, Other_student, month 
from student join database-(substring(other_student,3,1).payment 

Мой вопрос: Как я могу сцепить подстроку имя базы данных или имя столбца динамически?

Благодаря

+0

Спасибо, Sebas. Но я не уверен, как объединить базу данных - (substring (other_student, 3,1) правильно ли это? –

+0

Что такое контекстная хранимая процедура? Php? – Sebas

+0

Привет, Sebas. Это хранимая процедура. –

ответ

0

предположив, что вы есть поле для идентификации каждого студента с помощью уникального идентификатора (id_student), здесь дешевая альтернатива:

CREATE OR REPLACE VIEW v_student_payment AS 
SELECT 0 AS db, payment, id_student FROM database-0 
UNION 
SELECT 1 AS db, payment, id_student FROM database-1 
UNION 
SELECT 2 AS db, payment, id_student FROM database-2 
UNION 
SELECT 3 AS db, payment, id_student FROM database-3 
/* here you have to add all databases you're using. There's a little maintenance cost, for if one day there's a new database to be created this view would have to be modified */ 
; 

SELECT 
    original_student, 
    Other_student, 
    month, 
    v.payment 
FROM 
    student s 
     JOIN v_student_payment v ON v.id_student = s.id_student AND v.db = SUBSTRING(other_student,3,1) 
Смежные вопросы