WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Behöver hjälp med lite mer invecklad SQL-stats (MySQL) (https://www.wn.se/forum/showthread.php?t=1069880)

naak2803 2019-02-16 18:37

Behöver hjälp med lite mer invecklad SQL-stats (MySQL)
 
Hej,

jag skulle behöva lite hjälp med in invecklad SQL-stats.

har två olika tabeller. Customer + Followers


-- GER MIG ANTAL FÖLJARE
SELECT COUNT(*) AS following FROM Followers WHERE accountNo = '907286609046' GROUP BY accountNo


-- GER MIG CUSTOMER
SELECT * FROM Customer c INNER JOIN OptInChannels o ON c.accountNo=o.accountNo WHERE c.accountNo = '907286609046'

Det är i den senare satsen jag även skulle vilja få med antalet following som en egen kolumn

naak2803 2019-02-16 18:41

Never mind... efter lite experimenterande så lyckade jag fixa till det...
SELECT * FROM Customer c INNER JOIN OptInChannels o ON c.accountNo=o.accountNo INNER JOIN (SELECT COUNT(*) AS following FROM Followers WHERE accountNo = '907286609046' GROUP BY accountNo) f WHERE c.accountNo = '907286609046'

naak2803 2019-02-16 18:52

men har fortf lite problem, denna stats fungerar endast om "SELECT COUNT(*) AS following FROM Followers WHERE accountNo = '907286609046' GROUP BY accountNo" retunerar något. Är det tom så fungerar inte satsen. Då vill jag att following visas som 0....


någon?

troeglori 2019-02-18 11:38

Ta bort grupperingen. Den borde ej behövas i den query'n?

blaff 2019-02-18 13:08

Om customers endast kommer returnera en rad så bör ju denna fungera:

Kod:

SELECT c.*,  (SELECT COUNT(*) FROM Followers AS f WHERE f.accountNo = c.accountNo) AS followers FROM Customer c INNER JOIN OptInChannels o ON c.accountNo=o.accountNo WHERE c.accountNo = '907286609046'


Alla tider är GMT +2. Klockan är nu 08:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson