[JAVA/SQL] table.*, table2.columnname, table3.columnname

Pagina: 1
Acties:

  • Creatinus
  • Registratie: September 2004
  • Laatst online: 20-04 08:23
ik heb deze SQL query die het gewoon doet:
code:
1
2
3
4
5
select tblPerson.*, tblLocation.locPlant, tblFunction.funName
from tblPerson, tblLocation, tblFunction
where tblPerson.perID = 2
and tblPerson.perLocationID = tblLocation.locId
and tblPerson.perFunctionID = tblFunction.funId;

die wilde ik vertalen naar JAVA dus dan krijg je:
code:
1
2
3
4
5
ps = connection.prepareStatement("select tblPerson.*, tblLocation.locPlant, tblFunction.funName" +
                    "from tblPerson, tblLocation, tblFunction " +
                    "where tblPerson.perID = 2 " +
                    "and tblPerson.perLocationID = tblLocation.locId "+
                    "and tblPerson.perFunctionID = tblFunction.funId");

Hiermee krijg ik een java.sql exception, namelijk:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]The column prefix 'tblPerson' does not match with a table name or alias name used in the query.
het gedeelte tblPerson.* lijkt de problemen te geven, dus is een alternatief 1 voor 1 alle kolomen in de select aanroepen. Maar aangezien het er nogal veel zijn lijkt me dat wat omslachtig... is er een manier waarop je toch alles van 1 table kan selecteren waarna je ook 1 kolom van 2 andere tables kan mee nemen?

Select * en dan de andere kolom namen weglaten is niet echt een optie omdat je dan een veel langere row terug krijgt als resultaat waarna de rest van mijn code er niet echt mooier op wordt...

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
select * is over het algemeen trager, dus spendeer nu 1 minuut extra om je query uit te schrijven en dan heb je die zo weer terug verdient tijdens het draaien van de applicatie.

  • OxiMoron
  • Registratie: November 2001
  • Laatst online: 08-07-2025
tblFunction.funName" +
"from tblPerson, tblLocation,
Denk dat je een spatie nodig hebt voor de " in die eerste regel :)

Albert Einstein: A question that sometime drives me hazy: Am I or are the others crazy?


  • Creatinus
  • Registratie: September 2004
  • Laatst online: 20-04 08:23
OxiMoron schreef op vrijdag 15 april 2005 @ 12:05:
[...]


Denk dat je een spatie nodig hebt voor de " in die eerste regel :)
Ah check dat! Ben je er een uur mee bezig, komt er een wijsneus die het meteen ziet :P
Bedankt, in iedergeval. Maar ik heb het wel eens vaken dan ben ik zo bezig met die code dan kijk je gewoon over de simpelste dingen heen.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 08-05 19:46

Robtimus

me Robtimus no like you

Gert schreef op vrijdag 15 april 2005 @ 10:58:
select * is over het algemeen trager, dus spendeer nu 1 minuut extra om je query uit te schrijven en dan heb je die zo weer terug verdient tijdens het draaien van de applicatie.
Als je alle columns echt daadwerkelijk nodig hebt is er geen snelheidsverschil hoor.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:08

Janoz

Moderator Devschuur®

!litemod

Dan nog is het een stuk handiger om alles uit te schrijven zodat je weet wat er terug komt en in welke volgorde het terug komt. Waneer je nu de kolomnamen wilt weten moet je weer de database open trekken. Na drie keer dat doen heb je het utischrijven van de kolomen ook al weer terug verdient. In principe zou je gewoon aan je code moeten kunnen zien wat je ophaalt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Janoz schreef op vrijdag 15 april 2005 @ 13:08:
Dan nog is het een stuk handiger om alles uit te schrijven zodat je weet wat er terug komt en in welke volgorde het terug komt. Waneer je nu de kolomnamen wilt weten moet je weer de database open trekken. Na drie keer dat doen heb je het utischrijven van de kolomen ook al weer terug verdient. In principe zou je gewoon aan je code moeten kunnen zien wat je ophaalt.
Volgorde van kollomen is niet relevant in JDBC je moet de gegevens op de volgende manier ophalen:

resultSet.getString("col1");
resultSet.getBoolean("col1");
etc...

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 22-04 03:55

Nick_S

++?????++ Out of Cheese Error

[...]

Ah check dat! Ben je er een uur mee bezig, komt er een wijsneus die het meteen ziet :P
Bedankt, in iedergeval. Maar ik heb het wel eens vaken dan ben ik zo bezig met die code dan kijk je gewoon over de simpelste dingen heen.
Als je je SQL string even had uitgeprint m.b.v. een Logger (bij voorkeur) of System.out.println, had je zo'n fout snel gevonden, hoor.

[ Voor 50% gewijzigd door Nick_S op 15-04-2005 13:37 . Reden: Anders quote je even de verkeerd... 8)7 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'

Pagina: 1