SQL字符串替换为ID语句

时间:2010-05-16 09:03:32

标签: php sql mysql

是否可以创建一个sql语句来执行以下操作:

表1列出了所有药物名称,表2包含了所有副作用。

表3按ID分列所有药物名称,并以|分隔所有副作用。

我是否可以运行某种SQL查询来重新创建表3,其中由|分隔的副作用是表2中的副作用ID?

Table1
---------------------
id | drug_name
---------------------
1  | aspirin
2  | zoloft
3  | codine


Table2
---------------------
id | side_effects
---------------------
1  | rash
2  | hearing loss
3  | the plague


Table3
---------------------
id | drugs2sidefx
---------------------
1  | rash | hearing loss
2  | 
3  | the plague | hearing loss

1 个答案:

答案 0 :(得分:1)

这种方式你不需要table3。

应该是

drugs2se
---------------------
d_id | se_id
---------------------
1    |  1
1    |  2
3    |  2
3    |  3

然后,你可以通过像这样的查询获得所需的结果

SELECT d.name, group_concat(se.name) as effects 
FROM drugs d, drugs2se dse, side_effects se 
WHERE d.id=d_id AND se_id=se.id 
GROUP BY (d.id)