Соедините две таблицы MySQL, где содержимым tableA.column является имя требуемой tableB.column - PullRequest
0 голосов
/ 29 ноября 2018

Таблица A:

mac.............date........area........value<br>
222222222222    2018-10-16  area0001    123<br>
222222222222    2018-10-16  area0002    167<br>
555555555555    2018-10-16  area0001    231<br>
555555555555    2018-10-16  area0002    187<br>


Таблица B:

mac.............area0001.....area0002....area0003<br> 
222222222222    Apt-101      Apt-102     Apt-103<br>
555555555555    apt-104      Apt-105     Apt-106<br>


Мне нужно, для даты = 2018-10-16:

area.......value<br>
Apt-101    123<br>
Apt-102    167<br>
Apt-104    231<br>
Apt-105    187<br>


Заранее спасибо
Пауло Борхес

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Вышеуказанное условие было слишком сложным для требуемой задачи, и я решил изменить способ хранения данных.

Размещение данных, представляющих интерес, в качестве имени поля не ожидалось такой проблемой.Теперь area0001, area0002, area000x в TableB больше не являются именами полей и стали содержимым под именем поля «area», а Apt-101, Apt-102, Apt-10x под именем поля «label».

Проблема решена.

Спасибо, Пауло

0 голосов
/ 29 ноября 2018

вы можете попробовать, используя union

select t2.area0001 as area,t1.value from table1 t1 join table2 t2 on t1.mac=t2.mac
union
select t2.area0002,t1.value from table1 t1 join table2 t2 on t1.mac=t2.mac
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...