html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,issue,performed_via_github_app
https://github.com/simonw/sqlite-utils/issues/431#issuecomment-1155753397,https://api.github.com/repos/simonw/sqlite-utils/issues/431,1155753397,IC_kwDOCGYnMM5E42W1,9599,2022-06-14T22:01:38Z,2022-06-14T22:01:38Z,OWNER,"Yeah, I think it would be neat if the library could support self-referential many-to-many in a nice way.
I'm not sure about the `left_name/right_name` design though. Would it be possible to have this work as the user intends, by spotting that the other table name `""people""` matches the name of the current table?
```python
db[""people""].insert({""name"": ""Mary""}, pk=""name"").m2m(
""people"", [{""name"": ""Michael""}, {""name"": ""Suzy""}], m2m_table=""parent_child"", pk=""name""
)
```
The created table could look like this:
```sql
CREATE TABLE [parent_child] (
[people_id_1] TEXT REFERENCES [people]([name]),
[people_id_2] TEXT REFERENCES [people]([name]),
PRIMARY KEY ([people_id_1], [people_id_2])
)
```
I've not thought very hard about this, so the design I'm proposing here might not work.
Are there other reasons people might wan the `left_name=` and `right_name=` parameters? If so then I'm much happier with those.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1227571375,