打印多个SQL查询的结果作为一个结果

时间:2018-01-15 12:23:50

标签: mysql

所以我有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'

3 个答案:

答案 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'

这会生成一个结果集,其中包含第一个和第二个表中的项目,并将别名ij分配给这些表。 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...

https://docs.microsoft.com/en-us/sql/relational-databases/xml/example-specifying-a-root-element-for-the-xml-generated-by-for-xml