MySQL 关联不同表:根据主表字段值动态选择关联表

您可以使用 MySQL 的条件语句 (CASE WHEN) 来实现根据主表某个字段的值去关联不同的表。下面是一个示例:

SELECT
  main_table.id,
  main_table.field1,
  main_table.field2,
  CASE
    WHEN main_table.field3 = 'value1' THEN table1.field
    WHEN main_table.field3 = 'value2' THEN table2.field
    ELSE table3.field
  END AS related_field
FROM
  main_table
LEFT JOIN table1 ON main_table.id = table1.id
LEFT JOIN table2 ON main_table.id = table2.id
LEFT JOIN table3 ON main_table.id = table3.id;

在上述示例中,main_table 是主表,table1、table2 和 table3 是根据不同条件关联的表。通过使用 CASE 语句,根据 main_table 的 field3 字段的值,选择关联不同的表,并将关联表的 field 字段作为 related_field 返回。

请根据实际需求修改表名、字段名和条件。


原文地址: https://www.cveoy.top/t/topic/o5lW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录