Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to match US charter schools to noncharter schools in QGIS. I have constructed a buffer of 10 miles around each charter schools and then tried a join attributes by location match with non charter schools. This has been partly successful. I get matches but only one charter school buffer zone is associated with each traditional school. What I really want to have is a match between each traditional school and all the charter school buffer zones the traditional school is located in. The result will be a table with multiple records for some/many traditional schools because they are located in more than one charter school buffer zone.

In short I want to create a many point to many polygon join? thanks in advance, Nat

share|improve this question
Do you have a key in each table? – Willy Jan 16 '13 at 2:23
yes, I have keys in both tables, I just want to get a table with multiples of each key, but no multiples of the combined keys. – Nat Jan 16 '13 at 13:34
hello dear nat hello willy - plz keep us posted. i am very very interested in this matter. LET us know more – zero Jun 23 '14 at 19:01
Related/duplicate: Although the answer accepted there doesn't use QGIS. The issue is that QGIS's Spatial Query tool apparently doesn't allow for a one to many join like ArcGIS's Spatial Join does. Otherwise you could generate a file that duplicated each trad school once for each charter school buffer it fell in. The Make Query Layer tool could also do this, providing the many to many table you describe. But I'm not aware of an easy solution in QGIS. – Chris W Apr 17 '15 at 19:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.