[mapguide-users] Help with joining tables please
Dave Wilson
dave.wilson at autodesk.com
Thu Mar 26 19:23:43 EDT 2009
That is correct the view likely won't indicate the key, but as long as the column is available to pick and you select it it should work.
I don't think we support the other numeric datatypes for key columns although arguably tinyint and bigint should be candidates. Why float shows up as a key column candidate for the table is odd. Who would use a float as a key?
I haven't worked as much with SQL Server 2008 so the behavior of the views is unfamiliar to me.
Dave
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Darren Karasiuk
Sent: Thursday, March 26, 2009 5:08 PM
To: 'MapGuide Users Mail List'
Subject: RE: [mapguide-users] Help with joining tables please
I updated the FDO to 3.3.2 (I can see the SQL Server Spatial type now!), but I still cannot select the lat/lon fields.
All but five of the columns are "keys".
Each table in the database has primary keys, indexes, and one even has functions. (I'm not using any functions at this time.)
I have the primary key from the first native table (before all the inner joins) selected (and always has been).
As far as I can tell, the View doesn't indicate keys, is that right? Although in the designer it is clear which columns are keys.
Okay, a little more digging, and I discovered those five columns are all data type "int". The other 34 are "tinyint", "bigint", "float", "datetime", and "varchar". Is there a connection here? Why isn't the "float" of my lat/lon being picked up in the View but it does as a native table?
Tomorrow I'll start my view from one table and see if that works then build my query up to what I want.
________________________________
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Dave Wilson
Sent: March 26, 2009 4:30 PM
To: MapGuide Users Mail List
Subject: RE: [mapguide-users] Help with joining tables please
The native table will need a primary key column in order to support selection as well as to provide a key for the view and support selection from the view.
So what you should have is some column from Table A defined as a primary key. Include that column in the view.
Ignore my last question. I got confused.
Dave
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Darren Karasiuk
Sent: Thursday, March 26, 2009 3:44 PM
To: 'MapGuide Users Mail List'
Subject: RE: [mapguide-users] Help with joining tables please
All of my mapping works fine using the data I have in the database. The main table has GPS positions as a float as well as a SQL Server 2008 Geography column. I have used the lat/lon columns as point data on the map and themed very nicely. However, I need extra information from other other tables that will be used for more theming, extra info, highlighting roads that have speed violatations, etc.
For some reason, the lat/lon columns are showing as "key" fields in Mag Guide Studio _only_ for the newly created view. In the View Designer, I have no keys set up for these columns in either the view OR the native table.
I'm not quite sure what you mean in the last question. I am using the ODBC provider to connect to the database. I am not using the spatial provider for this layer. I use shape files uploaded to the repository to which the GPS points in my lat/lon columns line up along nicely. One thought occurs to me now, should I update the FDO? I am using the out-of-the-box version. I'll check if there is an updated version and try again.
________________________________
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Dave Wilson
Sent: March 26, 2009 3:29 PM
To: MapGuide Users Mail List
Subject: RE: [mapguide-users] Help with joining tables please
What datatype is your GPS_LAT/LON fields?
You have to click the Geometry check box (in Studio) in order to set the X and Y columns (these aren't key columns).
So is your data just point data then and you are using the ODBC Provider for both sources?
Dave
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Darren Karasiuk
Sent: Thursday, March 26, 2009 3:07 PM
To: 'MapGuide Users Mail List'
Subject: RE: [mapguide-users] Help with joining tables please
Hi Dave, thank you for the suggestions. I am using a single database and trying to join tables within them.
I agree that using a View is the best choice, because that also allows me to adjust time zones.
The problem I'm having now is MapGuide Studio will NOT display my GPS_LAT and GPS_LON fields when setting up the geometry. Out of 39 columns, only five are selectable.
One thing that appears different is for the native table, only two columns are listed as "key" fields and they are not the GPS_LAT/LON columns. My new view has almost all of the columns as a "key" field including the lat/lon columns.
How can I move the "key" fields to the selectable x, y columns?
Darren
________________________________
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Dave Wilson
Sent: March 26, 2009 8:39 AM
To: MapGuide Users Mail List
Subject: RE: [mapguide-users] Help with joining tables please
Of course if both tables are in the same database instance you might get your DBA to create a view joining the two tables for you. The performance would be better.
Dave
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Dave Wilson
Sent: Wednesday, March 25, 2009 5:23 PM
To: MapGuide Users Mail List
Subject: RE: [mapguide-users] Help with joining tables please
Can we assume your spatial data is in tableA and you are using a Spatial provider connection? For table B I would suggest using an ODBC connection via a DSN. You don't need the overhead of the spatial provider stuff for the joined table.
The same should apply when joining to SDF. In almost all cases the join should use an ODBC connection to the secondary data.
Dave
From: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Darren Karasiuk
Sent: Wednesday, March 25, 2009 4:47 PM
To: 'MapGuide Users Mail List'
Subject: [mapguide-users] Help with joining tables please
Hello, I've been fighting with this for a while and need your help.
I want to combine a few tables together and have that data available for themeing and viewing.
Without attempting to join tables, the data loads without any problem. However, I have not been able to get tables joined.
Using normal SQL Server 2008 "inner join tableB on tableA.location = tableB.location" is what I'm trying to do.
Using the Autdesk Mapguide Studio, I click through, set up my joining tables exactly as I would in SQL.
In the layer definition editor, I see the new attributes.
Before doing anything else, I export the layer as XML and test my map. The map viewer doesn't stop showing the busy icon, the legend labels become question marks (?) and no data ever loads. If I disable the layer, all the other layers show quickly.
I've tried using the same database connection, a different database connection, and a SDF imported from a shapefile. No method appears to work for me.
Is there a proper way of setting up joining tables? Should I learn the XML syntax and do it manually?
Thanks for your help,
Darren
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090326/fa2ccf42/attachment.html
More information about the mapguide-users
mailing list