我有一个表 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可能会有所帮助。