Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Två select-satser i samma fråga?

Postades av 2003-09-24 12:06:36 - Tård Wennerborg, i forum databaser, Tråden har 8 Kommentarer och lästs av 1223 personer

Jag håller på med ett forum och skulle vilja ställa en SQL-fråga som samtidigt som den listar alla ämnen räknar antalet svar på varje ämne.

Jag har lite för mig att man kan sätta två SELECT-satser i samma fråga, men kommer inte ihåg hur.

Frågan skulle vara ungefär.

SELECT id, ämne, (SELECT COUNT(id) FROM forum WHERE svar_tillhör=id) FROM forum

Där id i "svar_tillhör=id" är id:t i första SELECT-satsen....

Någon som har lösningen?
Eller en annan lösning för att slippa ställa en ny SQL-fråga för varje ämne som räknar antalet svar.


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-24 12:19:12 - Christoffer Hedgate


<code>
SELECT a.id, a.ämne, b.cnt
FROM forum a
INNER JOIN (SELECT svar_tillhör AS id, COUNT(*) AS cnt FROM forum GROUP BY svar_tillhör) b
ON a.id = b.id
</code>


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-25 09:24:17 - Andreas Hillqvist

Left join är väl att föredra eftersom postr som saknar svar annars inte kommer med. ;o)
<code>
SELECT a.id, a.ämne, b.cnt
FROM forum a
LEFT JOIN (SELECT svar_tillhör AS id, COUNT(*) AS cnt FROM forum GROUP BY svar_tillhör) b
ON a.id = b.id
</code>
Eventuellt måste du i access spara frågan/vyn:

Namn: qryAntalSvar
<code>
SELECT svar_tillhör AS id, COUNT(*) AS cnt
FROM forum
GROUP BY svar_tillhör
</code>
Och göra Joinen mot frågan/vyn:
<code>
SELECT a.id, a.ämne, b.cnt
FROM forum a LEFT JOIN qryAntalSvar b ON a.id = b.id
</code>


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-25 13:22:33 - Christoffer Hedgate

Funderade på det med, men vi vet ju inget om hur tabellen är designad eller vilket resultat som önskas. Kanske svar_tillhör är samma som id för de rader är själva roten i en svarskedja, därmed blir ju count=1 då. Kanske vill man inte ha de rader som ej har några svar.


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-26 11:40:58 - Hobil Haidari

om det är asp och ado vi talar om ska det gå att köra multiple recordsets genom att bara slänga in två sqlsatser i din SQL sträng, för att sedan traversera till det andra recordsetet skriver du bara MoveNextRecordset.

Det var länge sen jag använde tekniken och då gjorde jag det i VB samt att jag inte kommer ihåg om det funkade på disconnected recordset, eventuellt behöver man ha kopplingen aktiv...

Men om du inte gillar något av förslagen föreslår jag att du kollar upp teknologin Datashaping med ADO, det är hur smidigt som helst, speciellt när du ska hämta relaterad information som det handlar om i ditt fall...

www.4guysfromrolla.com har en klockren artikelserie om datashaping kolla in den... bara att söka på deras site.

Lycka till, om det inte ordnar sig är det bara att höra av sig igen.


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-26 13:10:45 - Christoffer Hedgate

Frågan har ingenting med datasahping eller flera recordsets att göra. Jag och Andreas har besvarat och utvecklat svaren redan.


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-26 13:22:15 - Hobil Haidari

Eller annan lösning!?

Hur tolkar du det? Visst måste väl både DataShaping och Multiple recordset vara en annan lösning, därmed inget sagt om de lösningar både du och Andreas lagt fram, jag vet att era förslag oftast (i princip alltid) är mycket bra.

Dessutom, om killen jobbar med forum kan det vara mycket användbart att känna till datashaping, därför att det förenklar en hel del vid hämtning av relaterat data... forum utv i synerhet har mycket relaterad datainformation.

Dessutom är det väl också så att det är upp till killen att bedöma vad som är svar på hans fråga!? Eller? Som jag ser det är det inte din sak att avgöra.


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-26 14:51:15 - Erik Juhlin

Testa

SELECT DISTINCT id, ämne, (SELECT COUNT(id) FROM forum WHERE svar_tillhör=f.id) FROM forum f

/Juhlin


Svara

Sv: Två select-satser i samma fråga?

Postades av 2003-09-26 16:06:18 - Christoffer Hedgate

Ursäkta om jag uttryckte mig på ett för negativt sätt i svaret, det var ej meningen. Dock anser jag inte att vare sig datashaping eller multipla recordsets är någon lösning på frågan (se nedan), och detta ville jag förklara framförallt för frågeställaren så att han ej blev förvirrad av de motsägelsefulla svaren. Frågan som ställdes var denna:

> Jag håller på med ett forum och skulle vilja ställa en SQL-fråga som samtidigt som den listar alla ämnen räknar antalet svar på varje ämne.

Visst, man kan lösa detta genom att med datashaping returnera ett recordset med samtliga ämnen i, och som en extra kolumn returnerar den ett inre recordset med de svar som finns till varje ämne (dvs ett recordset för varje rad i det första recordset). Sen skulle man kunna räkna antalet rader i varje inre recordset och skriva ut detta tillsammans med övrig info om ett ämne. Visst kan man göra så, och det är kanske en lösning om man ska skriva ut en massa information om varje svar tillsammans med respektive ämne, men för att bara räkna antalet svar till ett ämne är det overkill och dessutom inte i närheten av mitt eller Andreas förlag i prestanda. Det är ju faktiskt precis en sån typ av fråga som databashanteraren är expert på att hantera, på just något av de vis vi presenterade.

Dessutom anser jag att datasahaping är ganska lurigt. Många tror att det är någon form av magi som åstadkommer det resultat av yttre och inre recordsets, medan det i själva verket inte är något annat än att providern kör först en yytre fråga och sedan för varje rad i det yttre resultatet kör en inre fråga. Det är alltså ingen skillnad mot att själv köra en fråga och sedan för varje rad köra en ny fråga.

Vad gäller multipla recordsets så löser det inte frågan bättre än våra förslag, vad skulle de innehålla? Visst, man kan returnera ett recordset med alla ämnen och ett andra med antalet svar för varje ämne, men vad skulle man tjäna på det? Tvärtom blir det mer jobb då man måste se till att matcha raderna i dem mot varandra för varje ämne.


Svara

Nyligen

  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 900
27 965
271 779
575
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies