FAQ |
Kalender |
2011-08-02, 13:12 | #1 | |||
|
||||
Medlem
|
Hej
Jag försöker få ut 2 värden från två olika tabeller med en SELECT sats. Tabell 1 id username Tabell 2 user_id field_id value id i tabell 1 är samma värde som user_id i tabell 2 Jag vill få ut användarnamn från tabell 1 med tillhörande value där field_id är 20. Jag har provat: SELECT b.username, f.field_id, f.value FROM tabell1 b INNER JOIN tabell2 f ON b.id = f.user_id WHERE f.field_id = 20 och: SELECT tabell1.username, tabell2.field_id, tabell2.value FROM tabell1, tabell2 WHERE tabell2.field_id = 20 ORDER BY tabell2.value DESC LIMIT 5 |
|||
Svara med citat |
2011-08-02, 13:17 | #2 | ||
|
|||
Mycket flitig postare
|
SELECT tabell1.username, tabell2.field_id, tabell2.value FROM tabell1, tabell2 WHERE tabell2.field_id = 20 AND tabell1.id = tabell2.user_id ORDER BY tabell2.value DESC LIMIT 5
|
||
Svara med citat |
2011-08-02, 13:44 | #3 | |||
|
||||
Medlem
|
||||
Svara med citat |
2011-08-02, 13:47 | #4 | |||
|
||||
Medlem
|
Ursäkta att jag snor tråden men min fråga är ungefär densamma. Jag provade föreslagen sql på min databas men jag fick inte önskat utfall.
Mina tabeller ser ut som följer Tabell "Distrikt" distrikt int namn varchar (län) ... Tabell "Kunder" orgnummer int lan varchar (län) ... I tabellen distrikt har vi 77 poster. Ett distrikt (1) innehåller Östergötland och Jönköping. Distrikt 2 innehåller andra län/städer. I tabellen kunder har vi flera som "finns" i Östergötland och Jönköping. Men med mina frågor får jag bara ut endera läns kunder. Jag vill alltså att när jag väljer distrikt 1 få ut kunder som tillhör både Jönköping och Östergötland. select distinct orgnummer,lan from Kunder right JOIN (select namn,distrikt from Distrikt) as d ON d.namn = Kunder.lan where d.distrikt = 1 Någon som har ett förslag? |
|||
Svara med citat |
2011-08-02, 17:03 | #5 | |||
|
||||
Medlem
|
Löste mitt problem med följande sql. Det behövdes ingen JOIN utan en selectsats i where.
select distinct orgnummer,lan FROM Kunder WHERE Kunder.lan in((select namn from Distrikt where distrikt = 1)) |
|||
Svara med citat |
2011-08-03, 05:10 | #6 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Det kan finnas en risk för bugg här om det inte finns en PK i tabell 2. |
||
Svara med citat |
2011-08-04, 12:58 | #7 | |||
|
||||
Bara ett inlägg till!
|
Citat:
något sådant här kanske? SELECT d.distinct, k.orgnummer,lan FROM Kunder k INNER JOIN district d ON k.lan = d.namn AND d.distrikt = 1 Senast redigerad av MRDJ den 2011-08-04 klockan 13:02 |
|||
Svara med citat |
2011-08-04, 20:03 | #8 | ||
|
|||
Supermoderator
|
Subqueries bör normalt sett undvikas om möjligt så även i ditt fall.
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
Svara |
|
|