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


Många till många relation problem vid sökning (SQL2005)

Postades av 2008-02-19 16:45:33 - Anders Malmgren, i forum databaser, Tråden har 5 Kommentarer och lästs av 1347 personer

Hej.
Jag har ett litet problem som jag förbisätt.

Jag har en ganska avancerad och sökmotor som använder en bakomliggande query builder.

Vad jag har förbisätt är de sökningar som går mot många till många relationer och som ska ANDas ihop..

Så här kan en sådan sökning se ut..

SELECT DISTINCT * FROM mainTable
LEFT OUTER JOIN subTable1 ON mainTable.Id = subTable1.fk
LEFT OUTER JOIN subTableTyper ON subTable1.TypId = subTableTyper.Id
WHERE
(subTable.somecolumn = 'dummy' AND subTableTyper.typ = 'dummy')
AND (subTable.somecolumn = 'dummy2' AND subTableTyper.typ = 'dummy2')

Som ni ser ställer jag två frågor i where satsen, problemt är ju att en rad i mängden kan ju inte tillhöra både (subTable.somecolumn = 'dummy' AND subTableTyper.typ = 'dummy') OCh (subTable.somecolumn = 'dummy2' AND subTableTyper.typ = 'dummy2')

utan bara en av dem, men resultat mängden ska ju bara vara sådana som innehåller båda... Detta går ju att lösa med lite subselects, MEN det är ganska mycket logik i query buildern att ändra på det.

Lättast skulle det vara om det går att ordna i WHERE clausen, går det?



Svara

Sv: Många till många relation problem vid sökning (SQL2005)

Postades av 2008-02-19 17:05:30 - Lars-Erik Eriksson

Jag fattar inte riktigt vad du vill och vad du gör, men om du vill ha många till många relationer så borde fundera om du inte ska använda en relationstabell istället.


Svara

Sv: Många till många relation problem vid sökning (SQL2005)

Postades av 2008-02-19 19:25:53 - Niklas Jansson

Inte för att jag förstår mig på tabellnamnen och vad det är för något, men av din beskrivning att döma borde det ju gå att lösa genom

WHERE
(subTable.somecolumn = 'dummy' AND subTableTyper.typ = 'dummy')
OR
(subTable.somecolumn = 'dummy2' AND subTableTyper.typ = 'dummy2')

För övrigt ser det ju ut som att du helt borde göra ytterligare ett villkor i joinen om du ändå ska ha samma på de två kolumnerna, och sen bara göra sökning på aktuella (och då snyggare via IN(...)).


Svara

Sv:Många till många relation problem vid sökning (SQL2005)

Postades av 2008-02-20 08:44:13 - Anders Malmgren

Tack för svar!


Nja, OR stämmer ju inte då kommer du få tillbaks en delmängd där den antingen är det ena eller det andra.. den sak vara både och...


Svara

Sv: Många till många relation problem vid sökning (SQL2005)

Postades av 2008-02-20 14:08:00 - Pelle Sunkan

Ahhhh. Det tog en liten stund innan jag förstod vad du menade.
Jag tar mig friheten att göra det mer konkret.

Vi har en tabell med föräldrar (tabell F) och en tabell med barn (tabell B).
En förälder kan ha flera barn och ett barn har flera föräldrar (många till många relation).
För att lösa detta har du skapat en relationstabell (tabell R) som innehåller kombinationerna.

Det du vill ha som svar är vilka föräldrar har barn där den ena heter Nils OCH den andra heter Lisa.
Som jag ser det så MÅSTE vi ha ett OR mellan namnen på barnen men om du vet hur många namn du vill söka på så kan du lägga in en count med villkor.
Svaret nedanstående SQL sats ger blir de föräldra_id som uppfyller villkoret.

Ex (se tabellnamnen enligt ovan).
Select F.F_Id
From F
Inner Join R
On F.F_Id = R.F_Id
Inner Join B
On B.B_Id = R.B_Id
Where B.B_Namn = 'Nils'
OR B.B_Namn = 'Lisa'
Group By F.F_Id
Having Count(F.F_Id) = 2




Svara

Sv:Många till många relation problem vid sökning (SQL2005)

Postades av 2008-02-25 12:12:12 - Anders Malmgren

Ah, detta ska jag testa.. skulle vara nice om det funkade! :D


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 570
27 958
271 741
5 838
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