所以我有3个SQL查询结果(下面的示例代码)。我希望结果显示为不同的列或不同的表。这甚至可能吗?如果是,请帮助如何。结果彼此无关
SELECT RouterName, RouterType, Loopback100, Loopback200, ResiliencyGroup,
DeploymentStatus
FROM Routers
WHERE RouterName = 'PE23-SNG-AP'
SELECT ARouter, AInterface, BRouter, BInterface
FROM netplan.LinksPACSLcl
WHERE ARouter = 'PE23-SNG-AP' OR Brouter = 'PE23-SNG-AP'
答案 0 :(得分:0)
我相信这是JOIN的工作。尊重如果你不了解JOIN,你应该研究它;它是SQL的核心功能。它将来自多个表的行组合成单个输出行。
尝试这样的事情
SELECT i.RouterName, i.RouterType, i.Loopback100, i.Loopback200,
i.ResiliencyGroup i.DeploymentStatus,
j.ARouter, j.AInterface, j.BRouter, j.BInterface
FROM Routers i
LEFT JOIN netplan.LinksPACSLcl j (ON i.RouterName = j.ARouter
OR i.RouterName = j.BRouter)
WHERE RouterName = 'PE23-SNG-AP'
这会生成一个结果集,其中包含第一个和第二个表中的项目,并将别名i
和j
分配给这些表。 LEFT JOIN操作允许显示第一个表中的信息,即使在第二个表中没有任何匹配的信息。
答案 1 :(得分:0)
你应该使用UNION。这是一份工作样本。重要的部分是列名。请仔细检查 col1 的使用情况,为
Meteor.call('hello', function(error, result){
if(err){console.log(err)}
else {
console.log(result) // result in hello
}
});
答案 2 :(得分:0)
如果你能接受json结果;)
SELECT JSON_ARRAY_APPEND('[]', '$',
JSON_EXTRACT((SELECT concat('[',
group_concat(
JSON_OBJECT('RouterName' , `RouterName`,
'RouterType' , `RouterType`,
'Loopback100' , `Loopback100`,
'Loopback200' , `Loopback200`,
'ResiliencyGroup' , `ResiliencyGroup`,
'DeploymentStatus', `DeploymentStatus`)
SEPARATOR ','),
']')
FROM Routers
WHERE RouterName = 'PE23-SNG-AP'), '$[*]'), '$',
JSON_EXTRACT((SELECT concat('[',
group_concat(
JSON_OBJECT('ARouter' , `ARouter`,
'AInterface', `AInterface`,
'BRouter' , `BRouter`,
'BInterface', `BInterface`)
SEPARATOR ','),
']')
FROM netplan.LinksPACSLcl
WHERE ARouter = 'PE23-SNG-AP'
OR Brouter = 'PE23-SNG-AP'), '$[*]'));
如果您使用sql server,则可以使用SELECT ... FOR XML RAW...