【发布时间】:2016-04-21 20:44:08
【问题描述】:
我有这四个表:
餐桌优惠
- 身份证
- id_company
- 说明
表公司
- 身份证
- 姓名
表 company_customer
- id_company
- id_customer
表客户
- 身份证
- 姓名
我需要获得报价、提供报价的公司以及与这些公司有关系的客户。这很简单。
我输入的查询如下:
SELECT c.name, c.description, cu.name cu_name
FROM companies c
INNER JOIN offers o ON o.id_company = c.id
INNER JOIN company_customer cc ON cc.id_company = c.id
INNER JOIN customers cu ON cu.id = cc.id_customer
WHERE o.id_company = 1
ORDER BY o.id_company;
“问题”是有时一家公司的报价可用于不同的客户。
让我用一个真实的例子告诉你这个问题:
“易趣”| '报价 1' | '客户 1' '易趣' | '报价 1' | '客户 2'
但我需要在一行中连接或显示两行(仅在公司和报价相同但客户不同的情况下)。换句话说,我需要以下结果:
“易趣”| '报价 1' | '客户 1,客户 2'
我使用 PHP 和 MySQL。我知道这可以用 PHP 完成,但我想知道是否可以只用 MySQL 来完成。
有什么想法吗??
任何帮助将不胜感激。我为我的英语水平道歉。我知道这不是我最好的。
提前感谢您的时间和关注。
【问题讨论】:
-
http://www.w3schools.com/sql/sql_groupby.asp可能对你有帮助。 -
GROUP_CONCAT()是您的功能。更多信息:dev.mysql.com/doc/refman/5.7/en/…