Non unique one to many relationship
What you describe is not a one-to-many relationship but a many-to-many relationship because the column Field1 is not unique in any of the two tables (and please pick better names to describe the columns and tables, "Table1", "Table2", "Field1" say nothing about the table or the column and are very confusing).

I see two options depending on what your requirements are:


If the relationship between rows of tables 1 and 2 is only inferred by matching the "Field1" values and you don't need to store any more info on that many-to-many relationship, then you don't need any extra table at all. The 2 columns (Field1) in the respective tables are enough to find the related data. You could use a simple join on the two tables:

SELECT 
    a.id AS ID1,
    b.id AS ID2
    -- any additional column needed from any of the 2 tables
FROM table1 AS a
  INNER JOIN table2 AS b
    ON a.Field1 = b.Field1 ;

If the relationship between rows of tables 1 and 2 is not inferred by matching the "Field1" values (but there are extra conditions/requirements) or you need to store extra info about the relationship, you need an intermediate table. To make sure (enforce) that only rows with same "Field1" are actually related in this table, the common column ("Field1") has to be added, too, and participate in the two FOREIGN KEY constraints. (you will also need UNIQUE constraints on (Fieldd1, ID), on each of the 2 tables, for the foreign keys to work):

CREATE TABLE intermediate
  ( Field1 VARCHAR(5),
    ID1    INT NOT NULL,
    ID2    INT NOT NULL,
    -- possible extra columns
    PRIMARY KEY (ID1, ID2),
    FOREIGN KEY (Field1, ID1)
      REFERENCES table1 (Field1, ID),
    FOREIGN KEY (Field1, ID2)
      REFERENCES table2 (Field1, ID)
) ;