Link to home
Start Free TrialLog in
Avatar of ritschel
ritschel

asked on

How to display values from joined tables

I would like to display information from the tbl_Pass table based on a value from the tbl_Ship table.  This will occur multiple times in my ASP page.

I have a view_ship.asp request that displays the original person that submitted the ship request as well as the last person to modify the request.  I can display the tbl_Ship.ID_P and the tbl_Ship.ID_P_Mod however I want to display the actual name instead of the ID.  My initial thought is have the SQL statements separate for each occurrence however I am not sure how to do this in ASP classic.

Table Structure for tbl_Pass:
ID_P
fld_Full_Name

Table Structure for tbl_Ship:
ID_S
ID_P
ID_P_Mod
fld_Address
ASKER CERTIFIED SOLUTION
Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ritschel
ritschel

ASKER

Am I wrong in thinking I can do this like the select boxes where I lookup the value; individually?
>Am I wrong in thinking I can do this like the select boxes where I lookup the value; individually?
the 2 values ID_P and ID_P_mod are the key to the same table, right?
so, you can have 2 select boxes with the same list of people, and store the relevant ID_P into the 2 fields...
I don't really understand your question about your "thinking", I must assume you are thinking loud?
>the 2 values ID_P and ID_P_mod are the key to the same table, right?
>so, you can have 2 select boxes with the same list of people, and store the relevant ID_P into the 2 fields...
>I don't really understand your question about your "thinking", I must assume you are thinking loud?

Yes the 2 values ID_P and ID_P_Mod are the key to the same table.
I am trying display tbl_Pass.fld_Full_name with relation to tbl_Ship.ID_P with a response.write
Then in a separate SQL statement display tbl_Pass.fld_Full_name with relation to tbl_Ship.ID_P_Mod with a response.write

I mentioned the select box because we use a separate SQL statement for each select box.  I would like to use a separate SQL statement for each response.write display if possible.  Just do not know how to write the code.
did you try out my above query?
Tried the above query and it crashes the page with a Syntax error in FROM clause:
strsql = "Select s.*, p.fld_Full_Name, pmod.fld_Full_Name from tbl_Ship s join tbl_Pass p on p.ID_P = s.ID_P join tbl_Pass pmod on pmod.ID_P = s.id_P_Mod WHERE [ID_S]=" & tkey
I am trying to do something like this however I receive a data mismatch error when I do:
<% 
Dim p_rs, x_fld_Full_Name
set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.open(strCon)
sql = "SELECT DISTINCT ID_P, fld_Full_Name from tbl_Pass where ID_P = '" & Server.HTMLEncode("x_ID_P") & "'"
Set rs = adoCon.execute(sql)
p_rs = rs.GetRows()
rs.close
set rs = nothing
adoCon.close
set adoCon = nothing
%>                    
  
<input type="hidden" name="x_ID_P" size="30" maxlength="50" value="<%= Server.HTMLEncode(x_ID_P&"") %>">
 
<%'Build Array 
for i = 0 to UBound(p_rs,2) 
x_fld_Full_Name = p_rs(0, i)
%>
<%Next%>
<%=x_fld_Full_Name%>

Open in new window

what data type is the field ID_P ?
Hi, under access you need to add () on each join, it is weird but it is probably why the query crash on your from clause.

strsql = Select s.*, p.fld_Full_Name, pmod.fld_Full_Name from (tbl_Ship s join tbl_Pass p on p.ID_P = s.ID_P) join tbl_Pass pmod on pmod.ID_P = s.id_P_Mod WHERE [ID_S]=" & tkey
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
The last sql select statements gives me a: Syntax error in JOIN operation.  

What I would really like to do is call the value to be displayed similar to the code I posted.  The problem with my code is it gives me two values; the top value and the value I am looking for.  I would prefer to call the values individually as needed.
Found the answer by using Left Outer Join.  Thanks for all the ideas and help.
strsql = "Select * From (tbl_Ship s Left Outer Join tbl_Pass p ON s.ID_P = p.ID_P) Left Outer Join tbl_Pass pmod on s.ID_P_Mod = pmod.ID_P WHERE [ID_S]=" & tkey

Open in new window

Thanks for your help.  My lack of knowledge prevented me from seeing what you where trying to show me.  Always learn something from you experts.