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


Left join funkar inte...

Postades av 2008-03-25 01:54:56 - Jesper Thörn, i forum databaser, Tråden har 10 Kommentarer och lästs av 1701 personer

Oavsätt om jag byter ut inner till Left eller right så visas inner join resultatet.
Jag skulle vilja ha alla poster ifrån tabellen "objecttype" oavsätt om personerna har poster eller ej.
Hur gör jag det?

SELECT ot.id, ot.typename, count(o.objectid) commonCount, abs(o.Rate-o2.Rate) diff
FROM objectsusers o
inner JOIN objectsusers o2 ON o.objectid=o2.objectid
inner JOIN objects ob on o.objectid = ob.id
inner JOIN objecttype ot ON ot.id = ob.typeid
WHERE o.username = 'kalle' and o2.username = 'pelle'
group by ot.id


Svara

Sv: Left join funkar inte...

Postades av 2008-03-25 06:32:36 - Thomas Vanhaniemi

Använd en outer join och säg att den högra sidan ska tas med (eftersom objecttype är på den "högra" sidan).
<code>
SELECT ot.id, ot.typename, count(o.objectid) commonCount, abs(o.Rate-o2.Rate) diff
FROM objectsusers o
inner JOIN objectsusers o2 ON o.objectid=o2.objectid
inner JOIN objects ob on o.objectid = ob.id
RIGHT OUTER JOIN objecttype ot ON ot.id = ob.typeid
WHERE o.username = 'kalle' and o2.username = 'pelle'
group by ot.id
</code>


Svara

Sv: Left join funkar inte...

Postades av 2008-03-25 07:47:24 - Johan Djupmarker

Om du byter till "LEFT JOIN objecttype ot ON ot.id = ob.typeid" borde det fungera. Jag gissar att det är något annat fel. Vad händer om du tar bort objecttype helt från frågan, blir resultatet som du tänkt dej då?

/Johan


Svara

Sv:Left join funkar inte...

Postades av 2008-03-25 14:11:10 - Jesper Thörn

Gör ingen skillnad, tyvärr.


Svara

Sv:Left join funkar inte...

Postades av 2008-03-25 14:14:28 - Jesper Thörn

Nix, varken LEFT eller RIGHT fungerar, det ger samma resultat.
Jag kan inte ta bort tabellen "objecttype" för det är den som hela frågan bygger på, och jag grupperar ju även med en column ifrån den (tabellen).


Svara

Sv: Left join funkar inte...

Postades av 2008-03-25 14:55:11 - Johan Djupmarker

Frågan i sig ser ganska konstig ut, verkar lite ologiskt att du vill göra en left join på objecttype när det är den som det mesta bygger på. Vad är det du vill åstadkomma? Vilken information finns i de olika tabellerna?

/Johan


Svara

Sv: Left join funkar inte...

Postades av 2008-03-25 15:49:52 - Thomas Vanhaniemi

Jag skulle för tydlighetens skull slänga om tabellerna lite
<code>
SELECT ot.id, ot.typename, COUNT(o.objectid) commonCount, ABS(o.Rate-o2.Rate) diff
FROM objecttype ot
LEFT JOIN objects ob ON ob.typeid = ot.id
LEFT JOIN objectsusers o ON o.objectid = ob.id
LEFT JOIN objectsusers o2 ON o2.objectid = ob.id
WHERE o.username = 'kalle' AND o2.username = 'pelle'
GROUP BY ot.id
</code>


Svara

Sv:Left join funkar inte...

Postades av 2008-03-25 17:58:52 - Jesper Thörn

Denna listar faktiskt alla rader som de skall, men lägger jag till kolumnerna "o.Rate" och "o2.Rate" så visar de fel resultat.
Fattar inte varför.
<code>SELECT ot.id, ot.typename, COUNT(o2.objectid) uCount
, o.Rate KalleRate
, o2.Rate PelleRate
FROM objecttype ot
LEFT JOIN objects ob ON ob.typeid = ot.id
LEFT JOIN objectsusers o ON o.objectid = ob.id AND o.username = 'Kalle'
LEFT JOIN objectsusers o2 ON o2.objectid = ob.id AND o2.username = 'Pelle'
GROUP BY ot.id</code>


Svara

Sv: Left join funkar inte...

Postades av 2008-03-25 22:00:18 - Thomas Vanhaniemi

Ok, då är frågan vad som är rätt och vad som är fel?
Hur allting visas beror på din data. En Group By grupperar helt rått alla rader, och finns det två olika värden på Rate i någon av fallen vet du inte vilket av värdena du får ut.
Om det bara finns ett unikt värde ska den ge rätt...


Svara

Sv:Left join funkar inte...

Postades av 2008-03-26 02:12:45 - Jesper Thörn

Okey, då får jag kanske leva med det då.
Tack, båda.


Svara

Sv: Left join funkar inte...

Postades av 2008-03-28 09:38:07 - Jan Bulér

Grupperingen innebär ju att du kan få med flera o och o2 vilket du själv har insett eftersom du har med COUNT(o2.objectid).


Det kanske är något sådant här du vill ha.

<code>SELECT ot.id, ot.typename, COUNT(o2.objectid) uCount
, SUM(o.Rate) KalleRate
, SUM(o2.Rate) PelleRate
FROM objecttype ot
LEFT JOIN objects ob ON ob.typeid = ot.id
LEFT JOIN objectsusers o ON o.objectid = ob.id AND o.username = 'Kalle'
LEFT JOIN objectsusers o2 ON o2.objectid = ob.id AND o2.username = 'Pelle'
GROUP BY ot.id</code>

eller

<code>SELECT ot.id, ot.typename, COUNT(o2.objectid) uCount
, MAX(o.Rate) KalleRate
, MAX(o2.Rate) PelleRate
FROM objecttype ot
LEFT JOIN objects ob ON ob.typeid = ot.id
LEFT JOIN objectsusers o ON o.objectid = ob.id AND o.username = 'Kalle'
LEFT JOIN objectsusers o2 ON o2.objectid = ob.id AND o2.username = 'Pelle'
GROUP BY ot.id</code>


Med någon form funktion (AVG, MAX, MIN, SUM etc) på o.Rate och o2.Rate bör du kunna få riktiga svar från frågan.


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
637
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