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


sql-sats problem

Postades av 2002-11-05 09:34:10 - Andreas Högström, i forum sql-server/msde, Tråden har 3 Kommentarer och lästs av 695 personer

jag har de här tabellerna:

tblproducts:
pID
PGID

tblProductsAttributesValues:
PAID
AID
PID
[value]

tblAttributes:
AID
PGID
shown

försöker köra denna frågan:

SELECT DISTINCT dbo.tblProductsAttributesValues.PID FROM dbo.tblProductsAttributesValues INNER JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID INNER JOIN dbo.tblProducts ON dbo.tblProductsAttributesValues.PID = dbo.tblProducts.PID WHERE dbo.tblAttributes.Shown = 1 AND dbo.tblProducts.PGID IN (1,2,3,4,5,7,8,9,22) AND (dbo.tblAttributes.AID = 1 AND dbo.tblProductsAttributesValues.[Value] LIKE '%f%') AND (dbo.tblAttributes.AID = 5 AND CONVERT(INT, dbo.tblProductsAttributesValues.[Value]) = 5)

men får inte ut något resultat...

om jag kör de olika WHERE-villkoren separat så får jag värden:
1.
SELECT DISTINCT dbo.tblProductsAttributesValues.PID FROM dbo.tblProductsAttributesValues INNER JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID INNER JOIN dbo.tblProducts ON dbo.tblProductsAttributesValues.PID = dbo.tblProducts.PID WHERE dbo.tblAttributes.Shown = 1 AND dbo.tblProducts.PGID IN (1,2,3,4,5,7,8,9,22) AND (dbo.tblAttributes.AID = 1 AND dbo.tblProductsAttributesValues.[Value] LIKE '%f%')

returnerar ett antal PID

2.
SELECT DISTINCT dbo.tblProductsAttributesValues.PID FROM dbo.tblProductsAttributesValues INNER JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID INNER JOIN dbo.tblProducts ON dbo.tblProductsAttributesValues.PID = dbo.tblProducts.PID WHERE dbo.tblAttributes.Shown = 1 AND dbo.tblProducts.PGID IN (1,2,3,4,5,7,8,9,22) AND
(dbo.tblAttributes.AID = 5 AND CONVERT(INT, dbo.tblProductsAttributesValues.[Value]) = 5)

returnerar ett antal PID

fast när jag försöker slå ihop dem fungerar det inte...är det nån som ser nåt fel??
/Andreas


Svara

Sv: sql-sats problem

Postades av 2002-11-05 10:09:01 - Andreas Hillqvist

En rad kan inte uppfylla dbo.tblAttributes.AID = 1 och dbo.tblAttributes.AID = 5 sammtidigt.
Om du vill begränsa urvalet är du tvungen att använda två joins eller subquerys.

SELECT dbo.tblProducts.PID
FROM dbo.tblProducts
WHERE dbo.tblProducts.PGID IN (1,2,3,4,5,7,8,9,22) AND
dbo.tblProductsAttributesValues.PID IN (SELECT dbo.tblProductsAttributesValues.PID
FROM dbo.tblAttributes LEFT JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID
WHERE dbo.tblAttributes.Shown = 1 AND (dbo.tblAttributes.AID = 1 AND dbo.tblProductsAttributesValues.[Value] LIKE '%f%')) AND
dbo.tblProductsAttributesValues.PID IN (SELECT dbo.tblProductsAttributesValues.PID
FROM dbo.tblAttributes LEFT JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID
WHERE dbo.tblAttributes.Shown = 1 AND (dbo.tblAttributes.AID = 5 AND CONVERT(INT, dbo.tblProductsAttributesValues.[Value]) = 5))


Kan vara snabbare att lägga dem i serie:

SELECT dbo.tblProductsAttributesValues.PID
FROM dbo.tblAttributes LEFT JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID
WHERE dbo.tblAttributes.Shown = 1 AND (dbo.tblAttributes.AID = 1 AND dbo.tblProductsAttributesValues.[Value] LIKE '%f%') AND
dbo.tblProductsAttributesValues.PID IN (SELECT dbo.tblProductsAttributesValues.PID
FROM dbo.tblAttributes LEFT JOIN dbo.tblAttributes ON dbo.tblProductsAttributesValues.AID = dbo.tblAttributes.AID
WHERE dbo.tblAttributes.Shown = 1 AND (dbo.tblAttributes.AID = 5 AND CONVERT(INT, dbo.tblProductsAttributesValues.[Value]) = 5) AND
dbo.tblProductsAttributesValues.PID IN (SELECT dbo.tblProducts.PID
FROM dbo.tblProducts
WHERE dbo.tblProducts.PGID IN (1,2,3,4,5,7,8,9,22))


Svara

Sv: sql-sats problem

Postades av 2002-11-05 10:53:36 - Andreas Högström

tack så mycket!


Svara

Sv: sql-sats problem

Postades av 2002-11-05 11:04:57 - Andreas Hillqvist

Om det är för H²'s räkning så vill jag ha betalt. ;o)


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 617
27 953
271 709
5 730
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