Ich habe eine Frage zu SQL-Abfragen. Was ich eigentlich brauche, ist, alle Benutzer auszuwählen und ihre 3 bevorzugten Kategorien auszuwählen. Für jetzt, ich teile es zwei verschiedene Anfragen:SQL-Abfrage. Wie man sie kombiniert
async.waterfall([
cbUsersArray => {
sqlRequest(`
SELECT st.id as studentID, st.firstName as studentFirstName, st.email as studentEmail
FROM dbo.Students st
WHERE st.isActive = 1
AND st.deleted = 0
AND IsNull(st.firstName, '') != ''
AND IsNull(st.email, '') != ''
`, (sqlErr, sqlRes) => {
if(sqlErr){
cbUsersArray(sqlErr)
} else {
cbUsersArray(null, sqlRes)
}
})
},
(usersArray, cbUsersArrayWithFavCats) => {
async.eachLimit(usersArray, asyncEachLimit, (u, cb) => {
sqlRequest(`SELECT TOP 3 bts.BrandCategoryID as catID FROM Students st
JOIN SaleView ss ON (st.ID=ss.userID)
JOIN Sales sa ON (sa.ID=ss.SaleID)
JOIN Brands b ON (b.ID=sa.BrandID)
JOIN KEY_BrandcategoryToSale bts ON (bts.SaleID=sa.ID)
WHERE st.ID = ${u['studentID']}
GROUP BY bts.BrandCategoryID
ORDER BY COUNT(bts.BrandCategoryID) desc`,(sqlErr, sqlRes) => {
if(sqlErr){
} else {
}
cb()
})
},() => {
})
}
],() => {
})
Gibt es einen Vorschlag, wie ich es in einer Abfrage kombinieren und ähnliches Ergebnis hat?
+----+-----------+-----------+-------------+------------------------------+
| ID | StudentID | FirstName | Email | FavoriteCategories |
+----+-----------+-----------+-------------+------------------------------+
| 1 | 123456 | Edward | [email protected] | [{c1ID:1},{c2ID:2},{c3ID:3}] |
+----+-----------+-----------+-------------+------------------------------+
ODER
+----+-----------+-----------+-------------+--------+--------+--------+
| ID | StudentID | FirstName | Email | Cat1ID | Cat2ID | Cat3ID |
+----+-----------+-----------+-------------+--------+--------+--------+
| 1 | 123456 | Edward | [email protected] | 1 | 2 | 3 |
+----+-----------+-----------+-------------+--------+--------+--------+
Zeigen Sie uns Probenergebnisse aus den aktuellen Abfragen und wie sie sollen kombiniert werden. (So gut formatierter Text.) – jarlh
Hallo, so etwas. –
Wenn Sie nur die Students-Tabelle mit der zweiten sql-Anweisung verbinden, erhalten Sie drei Zeilen (eine für jede Kategorie), die Sie für jeden Student analysieren können. – Sourcery