Toon posts:

[SQL] Query-vraagske

Pagina: 1
Acties:

Verwijderd

Topicstarter
SQL:
1
2
3
4
5
6
SELECT h1.Plaats, h2.Beschrijving
FROM Hardware h1, Hardware h2
WHERE
  h1.Type = 'Computer' AND
  h2.Type = 'Primary IP Address' AND
  CONCAT( h1.Plaats, '$', h1.ID ) = h2.Plaats


Mijn database-tabel zit als volgt in elkaar:
code:
1
2
3
4
5
6
7
Type           varchar(100)
ID             int(11)
Plaats         text
Serial         text
Opmerking      text
Beschrijving   text
Tijd           bigint(20)


En een voorbeeldje van de data ziet er zo uit:
code:
1
2
3
4
Type                ID    Plaats       Serial   Opmerking                  Beschrijving                                      Tijd
Computer            1     Persoon1     NULL     Microsoft Windows 98       Microsoft Windows 98 4.10.1998 (Win98 Retail)     1057847904
Primary IP Address  1     Computer$1                                       10.55.63.212                                      1057847904
Computer            2     Persoon2     NULL     Microsoft Windows 98 SE    Microsoft Windows 98 SE 4.10.2222A (Win98 SE)     1057848051


Het probleem hiermee is dat hij niets als retour geeft.
Als ik die concat eraf laat zet hij bij elke persoon, elk ip adres. Wat dus niet het juiste is. Als ik die concat alleen laat lopen zie ik dat hij die perfect concat ... Dus ik weet nie juist waar ik hier iets verkeerd aan doe... Kan er iemand daar zijn lichtje op laten schijnen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Ooit al van joins gehoord? Nee?
-> http://www.w3schools.com/sql/default.asp

Als je twee of meer tabellen in je FROM list hebt staan, en je specifieert nergens hoe deze met elkaar gelinkt moeten zijn, dan krijg je een cartesiaans product.
Voor ieder record uit tabel1 krijg je ieder record uit tabel 2 terug.

https://fgheysels.github.io/


  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 12:03

leuk_he

1. Controleer de kabel!

in je voorbeeld:

CONCAT( h1.Plaats, '$', h1.ID ) = h2.Plaats

dus:
Persoon1$1=Computer$1 (ongelijk!)

wil je misschien

CONCAT( h1.type, '$', h1.ID ) = h2.Plaats

doen? |:( !!

[ Voor 10% gewijzigd door leuk_he op 04-08-2003 11:24 . Reden: muur toegevoegd ]

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Verwijderd

Topicstarter
whoami > Dat weet ik ... Daarom dat ik die concat ook doe ;)
leuk_he > Eens eventjes proberen ... Als jij gelijk hebt ga ik met mijn kop tegen de muur slaan

... muur ... here I come
:x

[ Voor 13% gewijzigd door Verwijderd op 04-08-2003 10:54 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Volgens mij scheelt er toch duidelijk wat met je DB model als je op die manier een join moet leggen hoor...

https://fgheysels.github.io/


Verwijderd

Topicstarter
Mja, ik heb in't school nooit met left & right & ... joins leren werken. Altijd met joinen via de WHERE clausule... (op Oracle). Dus mss wel slechte voor-opleiding ... Maar het werkt ook ;) Is via joins werken ook mogelijk met functies? En/of is dat rapper dan via WHERE-clausule?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Ik heb het niet over het feit of je nu joined in je WHERE clausule of mbhv een JOIN clause.
Ik heb het over jouw datamodel. Als je uit een stringveld een nummertje moet gaan halen waarme je een join moet leggen (dus dmv die Concat functie), dan scheelt er toch echt wat met je DB model.

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

* OZ-Gump is 't eens met whoami
Je zult iets aan je DB moeten veranderen wil je in de toekomst niet (verder) in de problemen komen.

Verder zag ik dat het probleem dus opgelost is? (verkeerd veld gejoined?) toch?

My personal website

Pagina: 1