如何在一个记录的列中返回不同类型的值

时间:2015-10-20 10:42:53

标签: mysql

我有一个表 dict (id,dict_name,dict_id,dict_type)和表记录(fruit_id,tool_id,lan_id)。我需要查询它并返回三个dict_name表示一条记录中记录中的三个给定ID。

例如

当我在查询中使用 limit 1 时,它将返回三个dict_name(apple,car,lisp,当fruit_id = 100,tool_id = 1000,lan_id = 22222)

我尝试了很多方法来查询,比如

 SELECT GROUP_CONCAT(DISTINCT(dict.dict_name))
 FROM dict
 JOIN record
 WHERE dict.dict_id IN (record.fruit_id, record.tool_id, record.lan_id)
 GROUP BY dict.type" //

但我只在每条记录中获得一个dict_name,在

中只获得dict_names
{'group_concat(DISTINCT(dict.dict_name))': apple}, 

和thress dict_names但是在多个记录中

{'group_concat(DISTINCT(dict.dict_name))': apple},
{'group_concat(DISTINCT(dict.dict_name))': car},
{'group_concat(DISTINCT(dict.dict_name))': lisp}

谢谢。

字典:

dict_name  //  dict_id  //  type

    apple  //      100  // fruit
     pear  //      101  // fruit
      car  //     1000  //  tool
      bus  //     1001  //  tool
     lisp  //    22222  //   lan
     perl  //    22223  //   lan

id_record

 fruit_id  //  tool_id  // lan_id

      100 //      1000  //  22222
      100  //     1000  //  22222
      100  //     1000  //  22223
      101  //     1001  //  22223
      101  //     1001  //  22223
      101  //     1001  //  22223

似乎One-to-Many SQL SELECT into single row可能会有所帮助。

0 个答案:

没有答案