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 vid flera språk

Postades av 2009-06-04 23:50:40 - Stefan Johansson, i forum databaser, Tråden har 7 Kommentarer och lästs av 3885 personer

Hejhej,

jag har en tabell med attribut till vilken hör en tabell för översättningar på olika språk enligt:

attribute
---------
attributeid
namedefault
descriptiondefault

attribute_locale
-----------------
attributeid
languageid
name
description

När jag kör en sql som ska välja ut alla attribute och använda t.ex. norska som språk så vill jag i de fall norsk översättning inte är med få ut namedefault och descriptiondefault istället.

Om jag kör:

select a.*, al.name from attribute a left join attribute_locale al on al.attributeid = a.attributeid where a.attributeid = 1 and al.languageid = 2

så gör ju where att jag bara får med de rader som har översättningar och inga andra.

Om jag kör inre sql satser:

select a.*, (select al.name from attribute_locale where al.attributeid = a.attributeid and al.languageid = 1) AS name, (select al.description from attribute_locale where al.attributeid = a.attributeid and al.languageid = 1) AS description from attribute a where a.attributeid = 1

så får jag ut mitt resultat men det känns onödigt att köra två subqueries...

hur kan man lösa detta smartare?

/stefan


Svara

Sv: sql vid flera språk

Postades av 2009-06-05 00:22:12 - Daniel Svalefelt

Hej!

Detta borde väl fungera...


select a.*, al.name, al.description
from attribute a
left outer join attribute_locale al on al.attributeid = a.attributeid and al.languageid = 1
where a.attributeid = 1


/Svalan


Svara

Sv:sql vid flera språk

Postades av 2009-06-05 08:27:52 - Thomas Vanhaniemi

SELECT IFNULL(al.name, a.namedefault) name, IFNULL(al.description, a.descriptiondefault) description FROM attribute a
LEFT JOIN attribute_locale al ON al.attributeid = a.attributeid AND al.languageid = 1 
WHERE a.attributeid = 1


Svara

Sv: sql vid flera språk

Postades av 2009-06-05 21:47:43 - Andreas Hillqvist

SELECT a.*, al.name, al.description
FROM attribute AS a 
    LEFT OUTER JOIN attribute_locale AS al ON (a.attributeid = al.attributeid AND al.languageid = 1)


Såg nu att det var samma som thomas. ;-)


Svara

Sv:sql vid flera språk

Postades av 2009-06-08 08:47:07 - Thomas Vanhaniemi

Snarare samma som Daniel ;-)


Svara

Sv: sql vid flera språk

Postades av 2009-06-08 10:20:04 - Daniel Svalefelt

Det känns som lösningen borde vara helt ok när tre olika personer skriver exakt samma lösning helt oberoende av varandra :-)

/Svalan


Svara

Sv:sql vid flera språk

Postades av 2009-06-08 12:22:11 - Thomas Vanhaniemi

Jepp, tror det ska fungera. Min lösning skiljer sig bara på det sättet att man inte skilt i koden behöver kontrollera om det är default eller översatt man ska använda sig av, annars är det exakt samma.


Svara

Sv: sql vid flera språk

Postades av 2009-06-08 19:47:24 - Stefan Johansson

mycket snyggt.

jag har nu raderat en massa rader onödig kod.

tack alla!

/stefan


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 571
27 958
271 741
5 858
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