webForumDet fria alternativet

SQL-fråga med flera tabeller

7 svar · 206 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1
sqlString = "SELECT O_ID, O_Username, O_Name, O_Zone, Z_title " &_
					 "FROM Operators, Zones, ZoneAssignments AZ " &_
					 "WHERE AZ.O_ID = 0_ID " &_
					 "AND  AZ.Z_ID = Z_ID " &_
					 "ORDER BY Z_title, O_Name"
					SET objOpRS = Con.Execute( sqlString )

Microsoft JET Database Engine (0x80040E14)
Syntaxfel i frågeuttrycket 'AZ.O_ID = 0_ID AND AZ.Z_ID = Z_ID'.

JAreMANNENMedlem sedan aug. 20002 272 inlägg
#2

ska det inte vara bokstaven O, där står det väl 0 (noll)
AZ.O_ID = 0_ID

bara en chansning eftersom resten utav namnen är med bokstaven O... ;)

AddeladdeMedlem sedan jan. 20013 406 inlägg
#3

Självklart var det så men nu får jag ett annat felmeddelande.

sqlString = "SELECT = O_ID, O_Username, O_Name, Z_title " &_
"FROM Operators O, Zones Z, ZoneAssignments AZ " &_
"WHERE AZ.O_ID = O.O_ID " &_
"AND  AZ.Z_ID = Z.Z_ID " &_
"ORDER BY Z_title, O_Name"
SET objOpRS = Con.Execute( sqlString )

Microsoft JET Database Engine (0x80004005)
Det angivna fältet 'O_ID' kan referera till fler än en av de tabeller som är uppräknade i SQL-uttryckets FROM-instruktion.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Ja, det stämmer.

sqlString = "SELECT AZ.O_ID, O_Username, O_Name, Z_title " &_
"FROM Operators O, Zones Z, ZoneAssignments AZ " &_
"WHERE AZ.O_ID = O.O_ID " &_
"AND  AZ.Z_ID = Z.Z_ID " &_
"ORDER BY Z_title, O_Name"
SET objOpRS = Con.Execute( sqlString )
AddeladdeMedlem sedan jan. 20013 406 inlägg
#5

Jag kanske ska förklara vad jag ska göra istället.
Från tabell operators ska jag hämta namn, användarnamn och o_ID
Sedan finns det en tabell som heter ZoneAssignments med kolumnerna O_ID och Z_ID OCh den linkar samman n annan tabell som heter zoner med operators.

EX:
Om vi har tabellen Operators med följande
O_ID = 1
O_Name = Andreas

Tabellen Zones med följande
Z_ID = 4
Z_title = Testzon

Tabellen ZoneAssignments som linkar ihop Zones Och Operators
O_ID = 1
Z_ID = 4

Detta ska ge utskriften
1 Andreas Testzon

AddeladdeMedlem sedan jan. 20013 406 inlägg
#6

Det löste sig, sproblemet var i tabellen inte i frågan.

					sqlString = "SELECT O.O_ID, O_Username, O_Name, Z_title " &_
					"FROM Operators O, Zones Z, ZoneAssignments AZ " &_
					"WHERE AZ.O_ID = O.O_ID " &_
					"AND  Z.Z_ID = AZ.Z_ID " &_
					"ORDER BY Z_title, O_Name"
					SET objOpRS = Con.Execute( sqlString )
LarsGMedlem sedan dec. 200012 464 inlägg
#7

Det borde du få med den frågan jag skrev (bortsett från o_username).

Så vad är problemet med

sqlString = "SELECT AZ.O_ID, O_Name, Z_title " &_
"FROM Operators O, Zones Z, ZoneAssignments AZ " &_
"WHERE AZ.O_ID = O.O_ID " &_
"AND  AZ.Z_ID = Z.Z_ID " &_
"ORDER BY Z_title, O_Name"
SET objOpRS = Con.Execute( sqlString )
AddeladdeMedlem sedan jan. 20013 406 inlägg
#8

PRoblemet var att den raden i ZoneAssignemnt var fel så att det inte blev någon utskrift. När jag ändrade den raden så att den var rätt så funkade allt.

Tack

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)