ich so etwas wie dieses:LEFT JOIN oder Wählen Sie in wählen (SQL - Geschwindigkeit der Abfrage)
SELECT CompanyId
FROM Company
WHERE CompanyId not in
(SELECT CompanyId
FROM Company
WHERE (IsPublic = 0) and CompanyId NOT IN
(SELECT ShoppingLike.WhichId
FROM Company
INNER JOIN
ShoppingLike ON Company.CompanyId = ShoppingLike.UserId
WHERE (ShoppingLike.IsWaiting = 0) AND
(ShoppingLike.ShoppingScoreTypeId = 2) AND
(ShoppingLike.UserId = 75)
)
)
Es verfügt über 3 wählen, ich möchte wissen, wie könnte ich es haben, ohne 3 wählt zu machen, und die hat man bessere Geschwindigkeit für 1 Million Rekord? "Auswählen in Auswahl" oder "Links verbinden"?
Wenn Leistung ein Problem ist, versuchen Sie jede Version Ihrer Daten in Ihrer Datenbank auf Ihrer Hardware und sehen Sie, welche schneller ist. –
Es hat zwei Fragen, ich kann nicht links Join vorbereiten, und für große Daten kann ich es nicht testen, weil ich nicht habe :( – dan
wenn MS SQL es für Sie tun, dann mach dir keine Sorgen, weil sein Optimierer optimieren wird Ihre Abfrage. Sie können Index auf CompanyId machen, um MS SQL zu helfen, Abfrage viel schneller zu tun. – Mahmoud