[SQL] 1 tabel vanuit 2 tabellen vullen mogelijk?

Pagina: 1
Acties:
  • 46 views sinds 30-01-2008

  • Massiefje
  • Registratie: Mei 2002
  • Laatst online: 14-08 22:00
Ik heb hier 3 tabellen:

mbComplete met de kolommen:
ARTIST NUMMER TITEL CODE

mbArtists met de kolommen:
artist artistID

mbSongs met de kolommen:
song artistID cdID track

Nu wil ik graag vanuit mbComplete via een query een nummer oppakken (elke regel is een nieuw nummer), de artiest eruit halen, vergelijken met de artiest in de mbArtist tabel en daarvan de artistID in de tabel mbSongs inserten. Daarbij zou het ook handig zijn als OOK de cdID op dezelfde manier word ingevuld en de naam van het nummer (die ik rechtstreeks kan kopieren uit mbComplete).

Is hier een SQL insert commando voor ? Ik heb namelijk geen zeer om ruim 10.000 regels opnieuw in te voeren :S

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Voor 2x een Insert Batch uit; eerst de ene tabel, vervolgens de andere tabel? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Massiefje
  • Registratie: Mei 2002
  • Laatst online: 14-08 22:00
ja, maar hoe weet ik welk nummer welk artistID moet hebben ??

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Die zoek je op met een select query. Ik neem aan dat je database wel subquery's ondersteunt.

Je zet dus een selectquery in je insert query. Of je gaat werken met SP's.

[ Voor 32% gewijzigd door gorgi_19 op 07-05-2003 18:32 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Massiefje
  • Registratie: Mei 2002
  • Laatst online: 14-08 22:00
MSSQL, denk het wel dan ja. Maar kan nergens vinden hoe dat moet.

Ik zit nu met de volgende query:

code:
1
2
3
INSERT INTO mbSongs (song, artistID)
SELECT nummer FROM mbComplete
..............


en dan moettie dus uit mbComplete het nummer pakken, artiest erbij pakken, artiest vergelijken in mbArtists en daarvan de artistID in de tabel zetten.

Snap je ?

Ik bijna niet namelijk :S

Verwijderd

Massiefje, wat is de bedoeling? Als ik terugkijk naar je vorige topics hierover en nu deze, vraag ik me af of jouw doel is om dit zelf te leren met wat hulp van anderen, of dat je wil dat anderen jouw problemen oplossen. Als dat laatste de bedoeling is, dan zit je nl. verkeerd in P & W ...

Probeer dus de SELECT query op te bouwen voor je de INSERT ervoor zet, om te controleren of je gewenste resultaten krijgt. Je kan daarbij een JOIN gebruiken om de tabellen mbArtists en mbComplete aan elkaar te koppelen op het veld Artist, zodat je ArtistID kan krijgen.

Edit:
Als je idd zelf wil leren, dan zit je hier goed. Overigens kan ik je in het geval van SQL wijzen op onze (kleine maar fijne) SQL FAQ, inclusief link naar een SQL tutorial en uitleg over JOINs: P&W FAQ - SQL

[ Voor 21% gewijzigd door Verwijderd op 07-05-2003 18:53 ]


  • Massiefje
  • Registratie: Mei 2002
  • Laatst online: 14-08 22:00
ik ben idd vrij nieuw in het gebeuren tot SQL. Ben daarnaast wel erg leergierig, maar kan vaak niet vinden wat ik zoek, omdat ik niet weet WAT ik precies zoek. Nu geef jij (mrX) mij een "tip" om eens te kijken naar JOIN. Daar heb ik dus wat aan.

Dank je !!!!

  • intGod
  • Registratie: Maart 2003
  • Niet online

intGod

Ars non postulat causam

Massiefje,

je hebt een insert..select nodig. Dit kan je opzoeken in je t-sql handleiding (books online).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
insert into
  mbSongs --mb? tb Lijkt me een betere aanduiding voor een tabel ...
(
  artistId -- Ik zou hier _FK toevoegen om aan te geven dat het om een FK gaat.
, song
, cdId -- dito mbt FK
)
select
  art.artistId
, cmp.nummer as song
, cmp.cdId
from
  mbComplete cmp (nolock)
    inner join -- Maak hier left join van als je songs zonder matchende artist wil overzetten
  mbArtists art (nolock)
    on art.artist = cmp.artist


Dit zou het moeten zijn (unchecked code!). Let wel dat je nu alleen case-INsensitive exact matches krijgt! Het zou dus best kunnen dat je een hoop artiesten/matches gaat missen. In de wereld van tSql is Queensrÿche een andere band dan Queensryche (of Motörhead en Motorhead).

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Je hebt al eerder 2 topics over dat onderwerp geopend; iedere keer werd je geholpen, kreeg je een tip of een duw in de goede richting en/of zelfs kant en klare voorbeeld code....

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.