Avatar billede sth Novice
26. april 2006 - 15:29 Der er 6 kommentarer og
1 løsning

hjælp til loin

jeg ahr 2 tabeller som bla indeholder følgende felter:
tabel 1
  `mixcust_cust` varchar(8) default NULL,
  `mixcust_serievar` varchar(8) default NULL,

Tabel 2

  `mixfarve_serie` varchar(4) default NULL,
  `mixfarve_farvesystem` char(3) default NULL,

nu vil jeg så gerne have lavet en join mellem mixcust_serievar og mixfarve_serie

men det kan jeg ikke da mixfarve_serie kunne ingerholde
0030
0040
0050
0060


og mixcust_serievar kunne indeholde:
003001
003042
003099
004000
005000

som det ses så er de 3 første karektere ens i de 2 tabeller så er det muligt at lave en join udfra de 4 første karektere ?


k
Avatar billede sth Novice
26. april 2006 - 15:33 #1
har selv prøvet noget i denne stil men det virker dog ikke:
SELECT * FROM mixcust,mixfarve where mixfarve_serie =mixcust_serievar  like '%mixfarve_serie%'
Avatar billede sth Novice
26. april 2006 - 15:41 #2
ok fandt lige ud af at jeg kunne bruge left

SELECT * FROM mixcust,mixfarve where mixfarve_serie =left(mixcust_serievar,4) men uha hvor det så tager lang tid
Avatar billede eagleeye Praktikant
26. april 2006 - 16:09 #3
Ja det er meget hurtigere hvis det er tal.

Det man typisk gør et at havde en ID for hver post i mixcust_serie (kunne være Int(x) med auto_increment sat) og så har man en kolonne i mixfarve_serievar som linket til ID i mixcust_serie og den kolonne skal havde samme type (int(x) uden auto_increment).

Så ville mixfarve_serie kunne ingerholde:
id  mixcust_serie   
1      0030
2      0040
3      0050
4      0060


og mixcust_serievar kunne indeholde:
mixcust_serievar    mixcust_serie_ref_id (eks)
    003001                              1
    003042                              1
    003099                              1
    004000                              2
    005000                              3
Avatar billede eagleeye Praktikant
26. april 2006 - 16:14 #4
og så laver man join på de to kolonner enten left, eller inner alt efet havd man ønsker:


select * from mixfarve_serie inner join mixcust_serievar on mixfarve_serie.id = mixcust_serievar.mixcust_serie_ref_id
Avatar billede sth Novice
26. april 2006 - 16:15 #5
ja det har du selvf ret 1 så det vil jeg da lige få ændret, tak for hjælpen

Smider du lige et svar
Avatar billede sth Novice
26. april 2006 - 16:34 #6
gad godt vide hvordan mit "i"
blev lavet om til "1" i
"ja det har du selvf ret 1"
Avatar billede eagleeye Praktikant
26. april 2006 - 16:43 #7
Ok, her et svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester