我有一个表名tblnetworkstatus,我有11列
我的表格中有以下记录
id issue_name affected_server affected_service issue_type
1 testing network 2,3 6,7 failure
我从tblproducts和tblserver表中受到影响的服务器和服务ID我有以下查询,其中我只得到id = 2的第一个受影响的服务器名称和id = 6的受影响的服务名称我想检查这两个值对于受影响的服务器2,3和受影响的服务6,7我有以下查询,我亲切地指导我
SELECT
m.issue_name,m.id ,m.issue_type ,
m.priority ,m.status,m.description ,
m.start_date,m.end_date,m.duration,
s.name as server_name,p.name as product_name
from mod_networkstatus as m
LEFT JOIN tblservers as s ON m.affected_server=s.id
LEFT JOIN tblproducts as p ON m.affected_service=p.id where m.id=1
从中我只得到这个结果
issue_name server_name product_name
testing network Monitor Server Amazon S3
但是我想要Monitor Server,server1用于server_name和Amazon S3,托管产品名称的帐户
答案 0 :(得分:0)
试一试 -
SELECT
m.issue_name,m.id ,m.issue_type ,
m.priority ,m.status,m.description ,
m.start_date,m.end_date,m.duration,
s.name as server_name,p.name as product_name
from mod_networkstatus as m
LEFT JOIN tblservers as s ON find_in_set(s.id,m.affected_server)
LEFT JOIN tblproducts as p ON find_in_set(p.id,m.affected_service) where m.id=1
EDIT1:
SELECT
m.issue_name,m.id ,m.issue_type ,
m.priority ,m.status,m.description ,
m.start_date,m.end_date,m.duration,
GROUP_CONCAT(s.name) AS server_name,
GROUP_CONCAT(p.name) AS product_name
FROM mod_networkstatus AS m
LEFT JOIN tblservers AS s ON FIND_IN_SET(s.id,m.affected_server)
LEFT JOIN tblproducts AS p ON FIND_IN_SET(p.id,m.affected_service)
WHERE m.id=1
GROUP BY m.id