Toon posts:

[sql] select omgooien

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit al een paar uur te denken hoe ik dit nou moet gaan doen, maar ik kom er niet echt uit. Momenteel heb ik dit:

code:
1
2
3
4
5
6
7
8
9
10
11
select spamcases.id, spamcases.idbedrijf, spamcases.datum, spamcases.idspamsource,
bedrijven.bedrijfsnaam, bedrijven.domein,
hspace.id AS hspaceid, hspace.bedrijfsnaam AS hspacebedrijfsnaam, hspace.domein AS hspacedomein,
spamsources.id AS spamsourceid, spamsources.bedrijfsnaam AS spamsourcebedrijfsnaam, spamsources.domein AS spamsourcedomein,
dns.id AS dnsid, dns.bedrijfsnaam AS dnsbedrijfsnaam, dns.domein AS dnsdomein
from spamcases
left join bedrijven on idbedrijf=bedrijven.id
left join hspace on idhspace=hspace.id
left join spamsources on idspamsource=spamsources.id
left join dns on iddns=dns.id
order by spamcases.idbedrijf


Deze werkt prima, echter wil ik de tabellen 'bedrijven', 'hspace', 'spamsources' en 'dns' tot 1 tabel smelten, dit kan omdat de inhoud van de tabellen nagenoeg gelijk zijn. Dus als ik dat doe hou ik 1 tabel bedrijven over. So far so good.

Fijn, alleen nu heb ik geen idee hoe ik de select dan moet uitvoeren om dezelfde resultaten te krijgen. Ik moet dan namenlijk 4 rijen uit 1 tabel halen die allemaal om de beurt matchen met 4 velden (idbedrijf, idhspace, idspamsource en iddns) uit de 1e select op tabel 'spamcases'. Tevens moet ik ook nog eens voor elk van de 4 rijen een AS gebruiken lijkt me omdat de velden van de 4 results die je dan krijgt dezelfde naam hebben.

Ik kom er even niet uit. :) Hoop dat het een beetje duidelijk is...

[ Voor 5% gewijzigd door Verwijderd op 12-03-2003 10:57 ]


  • dominic
  • Registratie: Juli 2000
  • Laatst online: 21-08 19:07

dominic

will code for food

Zoek eens naar de opties 'inner join' en 'outer join'..

je kunt natuurlijk ook een UNION ALL doen maar dat 'smelt' je tabellen niet echt samen, dat plakt gewoon de ene tabel onder de ander en vult de columns aan..

Download my music on SoundCloud


  • WarPuppy
  • Registratie: Januari 2000
  • Laatst online: 21:39

WarPuppy

Electronic Technology

eerst een join uitvoeren ?

Verwijderd

Topicstarter
? de tabellen zijn dus al samen alleen de select is nog 't probleem. :)

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 21-08 06:33

Tux

Je query een beetje overzichtelijk weergeven?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
SELECT
 spamcases.id,
 spamcases.idbedrijf,
 spamcases.datum,
 spamcases.idspamsource,
 bedrijven.bedrijfsnaam,
 bedrijven.domein,
 hspace.id AS hspaceid, 
 hspace.bedrijfsnaam AS hspacebedrijfsnaam, 
 hspace.domein AS hspacedomein,
 spamsources.id AS spamsourceid, 
 spamsources.bedrijfsnaam AS spamsourcebedrijfsnaam, 
 spamsources.domein AS spamsourcedomein,
 dns.id AS dnsid,
 dns.bedrijfsnaam AS dnsbedrijfsnaam,
 dns.domein AS dnsdomein
FROM
 spamcases
LEFT JOIN
 bedrijven
ON
 idbedrijf = bedrijven.id
LEFT JOIN
 hspace
ON
 idhspace = hspace.id
LEFT JOIN
 spamsources 
ON
 idspamsource = spamsources.id
LEFT JOIN
 dns 
ON
 iddns = dns.id
ORDER BY 
 spamcases.idbedrijf

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • avon
  • Registratie: November 2002
  • Laatst online: 27-06-2025
ORDER BY (order-tabel) DESC

Gratis webwinkel beginnen? Met Onetoshop.com kunt u direct beginnen!


Verwijderd

Topicstarter
Mensen, ik kreeg net een geweldige ingeving en ben eruit, gewoon zelfde select alleen na elke left join dezelfde tabel noemen en met AS hernoemen naar de oude tabel. :)

thx voor hulp!

Verwijderd

Waarom zou je de tabellen samen willen voegen? Alleen omdat ze dezelfde structuur hebben? Ik zou dat niet doen. Persoonlijk zou ik een view aanmaken op de eerste vier views en deze vervolgen gebruiken in een select met spamcases.
Pagina: 1