webForumDet fria alternativet

Hämta data från flera tabeller (igen)?

Databaser & SQL

7 svar · 354 visningar · startad av reka1

Medlem sedan sep. 2001650 inlägg
Frågan#1

Jag har två tabeller som ser ut så här i förenklad form:

event
KUND | PLATS
Olle | Stockholm
Olle | Umeå
Nisse | Stockholm
Nisse | Sundsvall

info
KUND | TELEFON
Olle | 111111
Nisse | 222222

Jag vill få en utskrift som ser ut i något i den här stilen
KUND | TELEFON | PLATS
Olle | 111111 | Stockholm, Umeå
Nisse | 222222 | Stockholm, Sundsvall

Hur skulle den korrekta sql-satsen ut? Oerhört tacksam för hjälp då mina försök resulterar i allt utom det jag vill ha.

Medlem sedan juli 200012 978 inlägg
#2

Borde du inte ha en tabell för KUND Som jag ser det verkar det inte normaliserat! Eller har du bara utelämnat information?

Medlem sedan sep. 2001650 inlägg
#3

Nej, det finns ingen tabell för kund, men jag antar att de borde finnas en sådan eftersom du nämner det.
Jag är ingen hejare på databasstrukturer :-(

Medlem sedan feb. 2004123 inlägg
#4

du borde bygga om databasen.

ha tre tabeller:

1.
kundId | kundNamn | kundTfn

2.
stadId | stadNamn

3.
eventId | stadId | kundId

Medlem sedan juli 200012 978 inlägg
#5

Prova då att skriva ner dina indata och förändringar (påverkan) samt vad du vill ha ut. Så kan vi hjälpa dig med att sätta upp tabeller på ett hyfsat sätt.

Medlem sedan sep. 2001650 inlägg
#6

Tusen tack för att ni vill hjälpa till :-)
Tabellerna är två: event och kund.

Tabellen event innehåller dessa kolumner:
id (primärnyckel, räknare)
foretag (text, firmanamnet)
plats (text, i vilken ort eventet har varit)
status (text, hur det utlöpte)
ar (text, vilket år)
kommentar (text, övrig info)

Tabellen kund är desto större med dessa kolumner
id (primärnyckel, räknare)
foretag (text, firmanamnet)
kontaktpersonA (text)
adress (text)
postnr (text)
postort (text)
land (text)
telefon (text)
mobil (text)
fax (text)
mejl (text)
webbplats (text)
bransch1 (text, i vilken bransch företaget är i)
bransch2 (text, ifall firman har förgreningar till andra branscher)
bransch3 (text, ifall firman har förgreningar till andra branscher)
bransch4 (text, ifall firman har förgreningar till andra branscher)
bransch5 (text, ifall firman har förgreningar till andra branscher)

Så där, det som nu önskas är att användaren skriver in vilket sökord som helst te.x. telefonnummer, firmanamn o.s.v. och ska vid träff få upp information i den här modellen:

FÖRETAG | POSTORT | LAND | PLATS
Nisses | Sundsvall | Swe | Timrå, Stockholm, London

Som sagt i tidigare inlägg så kan företaget "Nisses" finnas på flera rader i tabellen event, men bara på 1 rad i tabellen kund.

Mången tack på förhand!

Medlem sedan nov. 20017 144 inlägg
#7

Du skulle kunna lägga till ett relations id mellan event och kund i stället, så behöver du inte lagra företagsnamnet två gånger.

Medlem sedan sep. 2001650 inlägg
#8

Ok, så jag skapar alltså en tabell till med fälten
företagsnamn | event | kommentar
Nisses | 2, 3, 5 | Lite text

företagsnamnet: länkas till tabellen KUND för att hämta mer info där

event: länkas till tabellen EVENT. Siffrorna är ID på de eventen som besökts.

kommentar: varje kund har ju olika kommentarer och kan _väl_ då inte sparas i EVENT.

Tänker jag åt rätt håll nu? :-/

266 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)