我需要一些帮助来创建一个疯狂的功能!
我有一张名为product
的表和一张表country
。在此产品表格中,我有一个名为CountriesId
的列,其中一些ID为1,2,3,4
。
我需要创建一个存储函数,当我在product表上做一个select时,我可以用Countries Country
中的描述替换CountriesId列返回的id。
示例:
SELECT * FROM Country;
结果:
CountryId | CountryDescription
1 | U.S.A
2 | Japan
3 | China
SELECT * FROM Product;
结果:
ProductId | ProductDescription | CountriesId
1 | Product 1 | 1,2,3
SELECT fnIdToDescription(CountriesId) AS Countries FROM Product;
预期成果: 国家 U.S.A,日本,中国
也许它可以轻松制作,但我找不到解决方案。
感谢的!
答案 0 :(得分:1)
如果您现在更改数据库设计,现在和未来您将会做得更好。它违反了第一个规范化规则。
从countryIds
表中删除Product
列,并创建一个存储表之间关系的新表CountryProduct
。例如:
CREATE TABLE CountryProduct
(
countryId INT NOT NULL, `
productId INT NOT NULL,
PRIMARY KEY (countryId, productId)
);
答案 1 :(得分:0)
我找到了一个名为GROUP_CONCAT()的函数,并使用ID上的子选择和描述列上的GROUP_CONCAT()来解决它。
谢谢所有。