mysql – SQL – 如何使用父表的列名连接外键控数据

我有两张桌子:

RUNS

ID  numb   bay0  bay1  bay2
-----------------------------
1    55     aa    bb    cc
2    66     gg   NULL   dd
3    77     dd    bb   NULL

DATA
ID  run_id  serial  data
------------------------------
1     2       gg     xx
2     2       dd     xx

DATA.run_id是指向RUNS.ID的外键.

‘serial’和’bay%’的值是指向另一个表’products’的外键.

我想要的是这样的输出:

OUTPUT
ID  run_id  serial  data  bay
------------------------------
1     2       gg     xx   bay0
2     2       dd     xx   bay2

这样第一个表的列标题被放入第二个表数据的输出行.

我一直在玩很多查询,以获得列标题:

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =  'a'
AND TABLE_SCHEMA = 'b'
AND COLUMN_NAME LIKE 'bay%'

但最终我无法看到我将如何获取/合并/连接此输出.有人能帮我吗?

谢谢

最佳答案 如果列数已修复,则可以执行以下操作:

SELECT
  data.id, data.run_id, data.serial, data.data,
  CASE data.serial
      WHEN runs.bay0 THEN 'bay0'
      WHEN runs.bay1 THEN 'bay1'
      WHEN runs.bay2 THEN 'bay2'
      ELSE NULL
  END AS bay
FROM
  data
  JOIN runs ON (data.run_id = runs.id)

只需在CASE语句中列出所有可能的变体.不优雅,但在将bayX列添加/删除到数据表之前一直有效.

点赞