Sie können eine Union verwenden.
Dadurch werden die Ergebnisse der Abfragen in separaten Zeilen zurückgegeben.
Zuerst müssen Sie sicherstellen, dass beide Abfragen identische Spalten zurückgeben.
Dann können Sie tun:
SELECT tableA.Id, tableA.Name, [tableB].Username AS Owner, [tableB].ImageUrl, [tableB].CompanyImageUrl, COUNT(tableD.UserId) AS Number
FROM tableD
RIGHT OUTER JOIN [tableB]
INNER JOIN tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id
GROUP BY tableA.Name, [tableB].Username, [tableB].ImageUrl, [tableB].CompanyImageUrl
UNION
SELECT tableA.Id, tableA.Name, '' AS Owner, '' AS ImageUrl, '' AS CompanyImageUrl, COUNT([tableC].Id) AS Number
FROM
[tableC]
RIGHT OUTER JOIN tableA ON [tableC].tableAId = tableA.Id GROUP BY tableA.Id, tableA.Name
Wie bereits erwähnt wurde, kehren beide Abfragen ganz andere Daten. Wahrscheinlich möchten Sie dies nur tun, wenn beide Abfragen Daten zurückgeben, die als ähnlich angesehen werden können.
SO
Sie können ein
Join verwenden Wenn es einige Daten, die zwischen den beiden Abfragen gemeinsam genutzt wird. Dies wird die Ergebnisse der beiden Abfragen in einer einzigen Zeile durch die ID verbunden setzen, die wahrscheinlich mehr ist, was Sie hier zu wollen tun ...
Sie tun können:
SELECT tableA.Id, tableA.Name, [tableB].Username AS Owner, [tableB].ImageUrl, [tableB].CompanyImageUrl, COUNT(tableD.UserId) AS NumberOfUsers, query2.NumberOfPlans
FROM tableD
RIGHT OUTER JOIN [tableB]
INNER JOIN tableA ON [tableB].Id = tableA.Owner ON tableD.tableAId = tableA.Id
INNER JOIN
(SELECT tableA.Id, COUNT([tableC].Id) AS NumberOfPlans
FROM [tableC]
RIGHT OUTER JOIN tableA ON [tableC].tableAId = tableA.Id
GROUP BY tableA.Id, tableA.Name) AS query2
ON query2.Id = tableA.Id
GROUP BY tableA.Name, [tableB].Username, [tableB].ImageUrl, [tableB].CompanyImageUrl
... warum möchten Sie sie kombinieren? –
Sie möchten etwas mit zwei Abfragen tun, aber nicht wissen, was; "kombinieren" ist viel zu vage. – Smandoli
Ihre erste Abfrage sollte einen Fehler geben: 'Die Spalte 'tableA.Id' ist in der Auswahlliste ungültig, da sie weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten ist. –