Permalänk
Medlem

SQL merga 2 resultat

Hej!
Jag har en SQL databas där jag efter en query får ut en 2 dimensionell array. I denna array finns det 2 element som innehåller en jävla massa info. 2 Fält i vardera element skiljs åt. I den ena finns TYPE = WIDTH, VALUE = 12 och den andra TYPE = HEIGHT, VALUE = 13. Och allt annat är likadant i båda elementen. Går det att genom SQLen få ut 1 element där vi har fälten WIDTH = 12 & HEIGHT = 13 + allt annat.

Hoppas att jag har kunnat förklara så att det går att förstå.
Mvh
Dalgren

Visa signatur

Crosshair IV | 1055T @ 3.2 GHz | 4 GB Corsair dominator | Corsair H50 | Fractal Design R3 | 2x PowerColor 6950 2GB | Corsair HX 750W

Permalänk
Inaktiv
Skrivet av Dalgren:

Hej!
Jag har en SQL databas där jag efter en query får ut en 2 dimensionell array. I denna array finns det 2 element som innehåller en jävla massa info. 2 Fält i vardera element skiljs åt. I den ena finns TYPE = WIDTH, VALUE = 12 och den andra TYPE = HEIGHT, VALUE = 13. Och allt annat är likadant i båda elementen. Går det att genom SQLen få ut 1 element där vi har fälten WIDTH = 12 & HEIGHT = 13 + allt annat.

Hoppas att jag har kunnat förklara så att det går att förstå.
Mvh
Dalgren

Nu är jag egentligen emot att göra häftiga SQL frågor och skulle föreslå att du sköter logiken med programmering, det borde inte vara några svårigheter heller. Vad programmerar du i?

Vill du trots allt borde du kunna göra någon JOIN, här förklaras det rätt bra http://stackoverflow.com/questions/2317686/joining-2-sql-sele... Borde kunna appliceras på ditt problem.

Permalänk
Medlem
Skrivet av anon81912:

Nu är jag egentligen emot att göra häftiga SQL frågor och skulle föreslå att du sköter logiken med programmering, det borde inte vara några svårigheter heller. Vad programmerar du i?

Vill du trots allt borde du kunna göra någon JOIN, här förklaras det rätt bra http://stackoverflow.com/questions/2317686/joining-2-sql-sele... Borde kunna appliceras på ditt problem.

Jag trodde att göra häftiga SQL frågor skulle vara den bästa lösningen. Har ingenting emot att fixa det i programmeringen. Jag kör php + javascript. Hur kan man ställa upp det på ett bra sätt? Ibland kommer även ett fält som med TYPE=Depth, VALUE= 46 beroende på vad för typ jag tar ut.

Visa signatur

Crosshair IV | 1055T @ 3.2 GHz | 4 GB Corsair dominator | Corsair H50 | Fractal Design R3 | 2x PowerColor 6950 2GB | Corsair HX 750W

Permalänk
Inaktiv

Jag är lite emot häftiga SQL frågor då det ofta blir otydligt. Ibland kan det väl gå lite snabbare, i vissa fall, än att bara plocka ut tabeller. Beror väl lite på vad man gillar. Ibland går det snabbare att göra något fyndigt i koden.

Då skall du givetvis lösa det i PHP, om du vill göra det i kod. Det du vill göra är ju att bygga ett nytt element, som har all den gemensamma datan samt samla ihop dina width och height antar jag?

För att göra det är det ju bara att plocka fram ett element där TYPE = WIDTH och ett där TYPE = HEIGHT, sätta respektive variabler och plocka resten av datan.

Permalänk

Kan inget annat än hålla med föregående talare om att det är enklare att flytta över all verksamhetslogik till kod. Det ger även enklare möjligheter att kunna köra automatiserade tester också, vilket ger en massa fördelar. Dock om man ser problem med prestanda ska man köra med SQL-frågor istället. Detta är dock bara min personliga åsikt.

Permalänk
Avstängd

Jag måste bara påpeka att en JOIN knappast är så avancerad verksamhetslogik eller på något sätt en häftig SQL fråga.

Permalänk
Medlem

Beroende på databasmotor kan även en stored procedure vara ett alternativ. Detta gör att man ej behöver implementera logik i flera applikationslagren ifall databasen ska delas av olika applikationer (eller olika språk).

Visa signatur

Efter att ni har läst det här har ni insett att det inte gav något.

Permalänk
Avstängd

Att projicera tabeller på olika sätt brukar oftast inte ses som verksamhetslogik

Visa signatur
Permalänk
Medlem

Du kan använda dig av group by och en group_concat

Vill du ha bättre hjälpe måste man veta mer hur saker är upp byggt.

Visa signatur

orka

Permalänk
Datavetare

Om man inte har någon nytt av att utnyttja de funktioner databaser erbjuder, varför använder man då en databas? Man borde rimligen försöka köra så mycket av filtrering som möjligt på via SQL. Dels då databasmotorer kan ses som virtuella maskiner som programmeras via SQL och dagens databaser är typiskt betyder mer effektiva än vad en genomsnittsprogrammera får ihop (databaser är väldigt bra på att utnyttja multicore-maskiner om de får rätt problem). Dels om databasen och programmet körs på olika maskiner vill man än mer filtrera så långt det går redan i databasen för att minska data som ska skickas över nätet.

Det kan ändå vara så att det är mycket enklare att göra det man vill i kod. Hamnar man i det läget bör man ställa sig frågan varför man överhuvudtaget använder en relationsdatabas, det är antagligen något annat man borde köra med (textfil som läses in vid start, minnesmappad fil med lämplig struktur, key/value store etc).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Instämmer med @Yoshman
Detta låter som logik som är perfekt att använda en databas för. Misstänker att andra kanske helt enkelt inte är så vana med det. Rätt sak på rätt plats

Om jag förstår dig rätt så, för att få ut en kolumn som innehåller flera kolumner så är det bara att skriva något i stil med select columnA + ' ' + columnB from .... , eventuellt köra cast el. convert på kolumnerna till rätt typ. Dock inte säker på att det var så du menade...

Behöver du mer hjälp för att få till det så kan det vara en god idé att göra ett skript till oss där du har create script för tabellerna och några insert rader till tabellerna så kan vem som helst lätt sen hjälpa dig.

Visa signatur

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!