|
| Primærnøgle. Fra : msc |
Dato : 06-05-04 15:13 |
|
Jeg er ny i MySQL og prøver at lave en database i MySQL.
Jeg har en tabel "postnr" som indeholder "postnummer" "bynavn" og en
tabel "bruger" som indeholder bla. "navn", "adresse", "postnummer" osv.
Tabellerne connectes med "postnummer" som fremmednøgle i "bruger" og som
primærnøgle i "postnr".
Jeg vil gerne ha "postnummer" som primærnøgle i tabellen "postnr" og har
sat den således:
CREATE TABLE postnr (postnummer SMALLINT PRIMARY KEY, bynavn CHAR(60)
NOT NULL);
Men der opstår problemer i og med at jeg ikke kan lave forespørgsler som
inkluderer begge tabeller?
Skal jeg på en måde deklarere primærnøglen i "postnr" anderledes?
/msc
| |
Peter Brodersen (06-05-2004)
| Kommentar Fra : Peter Brodersen |
Dato : 06-05-04 15:16 |
|
On Thu, 06 May 2004 16:12:48 +0200, msc <spam@dotcph.dk> wrote:
>Men der opstår problemer i og med at jeg ikke kan lave forespørgsler som
>inkluderer begge tabeller?
Hvordan kommer disse problemer til udtryk? Får du en fejl?
Et gæt i tågen er, at du et sted blot refererer til "postnummer", uden
explicit at angive fra hvilken tabel, der skal kigges i (fx
postnr.postnummer).
--
- Peter Brodersen
Ugens sprogtip: "Der er et yndigt land" (og ikke "Det er et yndigt land")
| |
msc (06-05-2004)
| Kommentar Fra : msc |
Dato : 06-05-04 15:22 |
|
Peter Brodersen wrote:
>
> Hvordan kommer disse problemer til udtryk? Får du en fejl?
>
Jeg får denne fejlmeddelelse:
mysql> SELECT fornavn, efternavn, adresse, postnummer, bynavn, FROM
bruger, postnr, WHERE bruger.postnummer = postnr.postnummer;
ERROR 1064 (42000): 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 'FROM bruger, postnr, WHERE bruger.postnummer =
postnr.postnummer' at line 1
/msc
| |
JMo. (06-05-2004)
| Kommentar Fra : JMo. |
Dato : 06-05-04 15:45 |
|
msc wrote:
> Jeg får denne fejlmeddelelse:
>
> mysql> SELECT fornavn, efternavn, adresse, postnummer, bynavn, FROM
> bruger, postnr, WHERE bruger.postnummer = postnr.postnummer;
>
> ERROR 1064 (42000): 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 'FROM bruger, postnr, WHERE bruger.postnummer =
> postnr.postnummer' at line 1
Fjern komma'et mellem postnr og WHERE
| |
Henrik Stidsen (06-05-2004)
| Kommentar Fra : Henrik Stidsen |
Dato : 06-05-04 15:49 |
|
"JMo." <ns_sf012@mohr.cx.invalid> wrote in
news:Xns94E1AA6731922JMoUsenetPost@212.54.64.149
> Fjern komma'et mellem postnr og WHERE
OG mellem bynavn og FROM
--
..: Henrik Stidsen - http://hs235.dk/blog/ ::...
'Veni, Vidi, Velcro' - I came, I saw, I stuck around.
| |
msc (06-05-2004)
| Kommentar Fra : msc |
Dato : 06-05-04 15:50 |
|
JMo. wrote:
> Fjern komma'et mellem postnr og WHERE
Hehe, der var komma fejl 2 steder. Men men men, det hjalp ikke. Nu får jeg:
ERROR 1052 (23000): Column: 'postnummer' in field list is ambiguous
Når jeg prøver med:
SELECT fornavn, efternavn, adresse, postnummer, bynavn FROM
bruger, postnr WHERE bruger.postnummer = postnr.postnummer;
/msc
| |
JMo. (06-05-2004)
| Kommentar Fra : JMo. |
Dato : 06-05-04 15:55 |
|
msc wrote:
> Hehe, der var komma fejl 2 steder. Men men men, det hjalp ikke. Nu får
> jeg:
>
> ERROR 1052 (23000): Column: 'postnummer' in field list is ambiguous
>
> Når jeg prøver med:
>
> SELECT fornavn, efternavn, adresse, postnummer, bynavn FROM
> bruger, postnr WHERE bruger.postnummer = postnr.postnummer;
Yep.
Du fortæller ikke om du vil have bruger.postnummer eller postnr.postnummer.
SELECT fornavn, efternavn, adresse, postnr.postnummer AS postnummer, bynavn
FROM bruger, postnr WHERE bruger.postnummer = postnr.postnummer;
| |
msc (06-05-2004)
| Kommentar Fra : msc |
Dato : 06-05-04 16:06 |
|
JMo. wrote:
> Yep.
>
> Du fortæller ikke om du vil have bruger.postnummer eller postnr.postnummer.
>
> SELECT fornavn, efternavn, adresse, postnr.postnummer AS postnummer, bynavn
> FROM bruger, postnr WHERE bruger.postnummer = postnr.postnummer;
>
Det hjalp
Tusind tak for den hurtige hjælp!! Det kan være jeg får brug for jer et
par gange endnu.
/msc
| |
Claus Abildgaard Chr~ (06-05-2004)
| Kommentar Fra : Claus Abildgaard Chr~ |
Dato : 06-05-04 15:57 |
|
msc wrote:
> JMo. wrote:
>
>> Fjern komma'et mellem postnr og WHERE
>
>
> Hehe, der var komma fejl 2 steder. Men men men, det hjalp ikke. Nu får jeg:
>
> ERROR 1052 (23000): Column: 'postnummer' in field list is ambiguous
>
> Når jeg prøver med:
>
> SELECT fornavn, efternavn, adresse, postnummer, bynavn FROM
> bruger, postnr WHERE bruger.postnummer = postnr.postnummer;
>
> /msc
Det er fordi postnummer findes i både bruger og i postnr tabellerne. Du
skal angive hvilken af dem du vil have.
SELECT fornavn, efternavn, adresse, bruger.postnummer, bynavn FROM
bruger, postnr WHERE bruger.postnummer = postnr.postnummer;
--
Claus Abildgaard Christensen
http://abildgaard.de/
| |
|
|