Skrev i en gammal tråd som ingen verkar uppmärksamma så fixar ny tråd. Hej! vissa tyger är kostym- eller byxtyg och det är inte alls samma som skjorttyg - det lät logiskt i mitt huvud, men å andra sidan är jag inten så bäst på större struktur. Det fungerade inte alls. Om du kopierade sql-frågan rakt av så saknades det ett kommatecken (,) mellan första och andra fältet i selectsatsen. Ah, en modig hjälte ;) Jonas, Jonas, Denna fråga är mer SQLrelaterad än postningen i den andra tråden som var mer Databasdesign-relaterad. Därav nypostning. Hej! Hej,SQL Hjälp
Har en stor MySQL-databas som jag behöver hjälp med. Har inte arbetat med relationstabeller innan.
<B>Fabrics (olika tygsorter)
ID name description fabricstype</B>
1 Blå manchester Ett fint tyg med skön struktur. 1
2 Rutigt Blå med vita ränder 3
3 Randigt Kritstreckrandigt 2
4 Himmelsblå skjorttyg Snygg himmelsblått tyg för skjortor 4
5 Marinblå skjorttyg NULL 4
<B>Fabricsproductgroups (vilka tyger som tillhör vilka produkter (produktgrupper))
FabricsID ProductgroupsID</B>
1 1
2 1
3 1
4 2
5 2
<B>Fabrictypes (mönster eller typ av tyger)
ID name</B>
1 Manchester
2 Randigt
3 Rutigt
4 Skjorttyger
5 Siden
<B>productgroups (de olika produkterna (produktgrupper))
ID Name Description Price</B>
1 Kostym En kostym i valfritt tyg ur sortimentet. 1998
2 Skjorta En skjorta i valfritt tyg ur sortimentet. 498
3 Kavaj Om du inte behöver några kostymbyxor till. 1199
4 Byxor Om du inte behöver en kavaj, 799
Och vad vill jag med detta egenligen?
Hmm, Jag ville ha ut alla skjortor och de tyger som är kopplade till skjortor.
testade lite med detta, men den fick fnatt och jag fick ut allt 4 ggr
"SELECT Productgroups.Name, Productgroups.Description, (
Fabrics.name
), Fabrics.description
FROM Productgroups, Fabrics, Fabrictypes, Fabricsproductgroups
WHERE Fabrictypes.ID =4
AND Productgroups.ID =2"Sv: SQL Hjälp
Följande borde fungera, eller visa principen i alla fall...
SELECT
Productgroups.Name Productgroups.Description, Fabrics.name, Fabrics.description
FROM Productgroups
JOIN fabricproductgroups ON productgroupsid = productgroups.ID
JOIN fabrics ON fabrics.ID = fabricsid
WHERE fabricsid = 4 AND productgroupsid = 2
Dock funderade jag på en liten sak. Behöver du verkligen en enda tabell som kopplar ihop fabriksid och produktid? Det behövs om en produkt kan ha flera olika tyger, kan den inte det är det ingen idé att ha en skild tabell, räcker då med bara en kolumn...
Mvh,
Thomas
Sv:SQL Hjälp
Tack för hjälpen, skall testa om SQLen fungerar.Sv:SQL Hjälp
#1064 - You have an error in your SQL syntax.
Check the manual that corresponds to your MySQL server
version for the right syntax to use near '.Description, Fabrics.name, Fabrics.description
FROM Productg
Annan lösning?
Jag har försökt att förstå logiken i koden men det känns avlägset just nu...
Sv: SQL Hjälp
/P-ESv:SQL Hjälp
Himla casesensitive också...
SELECT Productgroups.Name, Productgroups.Description, Fabrics.name, Fabrics.description
FROM Productgroups
JOIN Fabricsproductgroups ON productgroupsid = Productgroups.ID
JOIN Fabrics ON Fabrics.ID = fabricsID
WHERE fabricsID =4
AND productgroupsid =2
Löst nu alltså!
STORT tack!
(så kod-blind man kan vara ibland)
Sv: SQL Hjälp
Jag tycker mig ana tva problem har (ursakta om jag har fel):
1. Du har postat svaret i en ny trad istallet for att svara i den gamla. Varfor da? Nu blir det svarare for andra som har motsvarande problem att hitta losningen.
2. Ditt inlagg deklarerar klart och tydligt att du har lost problemet, men traden ar inte markerad som lost. Aven detta ar en nackdel nar man soker svar pa liknande problem sjalv.
Mvh,
JohanSv: SQL Hjälp
Om du har lost problemet sa markera garna traden som lost sa att andra som har liknande problem kan dra nytta av denna kunskapen.
Mvh,
Johan
EDIT: Redigerade bort ett missforstand som uppstod pga min webblasare.Sv:SQL Hjälp
Japp, du har rätt på tvåan.
Problemet löst!Sv: SQL Hjälp
Följande borde fungera, eller visa principen i alla fall...
SELECT
Productgroups.Name, Productgroups.Description, Fabrics.name, Fabrics.description
FROM Productgroups
JOIN fabricproductgroups ON productgroupsid = productgroups.ID
JOIN fabrics ON fabrics.ID = fabricsid
WHERE fabricsid = 4 AND productgroupsid = 2
Dock funderade jag på en liten sak. Behöver du verkligen en enda tabell som kopplar ihop fabriksid och produktid? Det behövs om en produkt kan ha flera olika tyger, kan den inte det är det ingen idé att ha en skild tabell, räcker då med bara en kolumn...
Mvh,
Thomas
Sv:SQL Hjälp
Sorry for mina nagot skumma inlagg ovan, men sa fort man valde att andra i forumt igar sa blev det istallet ett nytt inlagg. Dessutom sa dok bara delar av traden upp i min webblasare, varfor en del kommentarer blev orattvisa och felaktiga. Sorry for strulet.
// Johan