MySQL, tabellen joinen zonder onderlinge relatie

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

  • E.Greidanus
  • Registratie: November 2000
  • Laatst online: 14-11-2017
Is het mogelijk om in MySQL tabellen te joinen zonder dat er relatie tussen bestaat? Ik heb 30 verschillende tabellen met data waar ik graag in wil zoeken. Het zoeken per formulier type lukt al wel, nu alleen nog voor alle formulieren.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Ja hoor.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • E.Greidanus
  • Registratie: November 2000
  • Laatst online: 14-11-2017
Dat is goed te lezen! Zou je me op weg kunnen helpen?

[ Voor 5% gewijzigd door E.Greidanus op 18-12-2006 13:27 ]


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Gewoon met een join constructie. Je hoeft niks speciaals ervoor te doen.

Verwijderd

code:
1
SELECT * FROM tabel1, tabel2 WHERE tabel1.id = tabel2.id

En nog (heel) veel meer ;)

[ Voor 16% gewijzigd door Verwijderd op 18-12-2006 13:22 ]


  • E.Greidanus
  • Registratie: November 2000
  • Laatst online: 14-11-2017
gewoon select gaat niet werken, want er bestaat geen relatie (where t1.id = t2.id). Welke join moet ik gebruiken?

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Heb je het geprobeerd dan? Nee.

Laat 'ns zien welke query je hebt uitgevoerd, en welke foutmelding je dan terugkrijgt?

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Tja, welke JOIN je zal moeten gebruiken ligt aan wat je precies wilt bereiken...
http://www.google.nl/sear...&meta=&btnG=Google+zoeken

  • E.Greidanus
  • Registratie: November 2000
  • Laatst online: 14-11-2017
toen ik het probeerde liep mijn pc helemaal vast ... dat was (in dat geval 30 tabellen ipv 2):

$result = mysql_query("SELECT * " .
"FROM data_gav5160 AS dt1, data_gic5150 AS dt2 " .
"WHERE dt1.id = dt2.id");

  • E.Greidanus
  • Registratie: November 2000
  • Laatst online: 14-11-2017
Er bestaat geen primaire sleutel / vreemde sleutel relatie tussen de tabellen en daarom resulteert MySQL enorm veel resultaten (Ik lees op http://www.w3schools.com/sql/sql_join.asp dat JOIN daarom ook niet gaat werken). Ik las wel iets van UNION, maar daarmee is het me nog niet gelukt ...

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

UNION heeft er niets mee te maken.
En ook al is het goed om relaties te leggen, zou dat er niet van moeten weerhouden om te joinen, zij het met een JOIN statement, zij het met een WHERE.

En join je nu twee primary keys met elkaar? d1.id en dt2.id? Of is de ene de foreign key en de andere de primary? Waar 'key' nu even niet letterlijk opgevat dient te worden.

[ Voor 10% gewijzigd door kenneth op 18-12-2006 13:40 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Als je wil joinen, zal je zowiezo op een bepaald veld moeten joinen. Dwz dat je een bepaalde waarde die refereert naar het record in de andere tabel zal moeten opnemen. Je hebt geen foreign key constraint nodig om te kunnen joinen.
heb je echter geen foreign key veld, dan kan je niet joinen. Als je een FROM clausule hebt met n tabellen die je niet joined, zal je een carthesiaans product terugkrijgen. Alle records uit tabel 1 x alle records uit alle andere tabellen.
Een UNION is weer helemaal iets anders, maar ik denk dat je best eens een SQL tutorial kan volgen.

[ Voor 9% gewijzigd door whoami op 18-12-2006 13:43 ]

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.