Во-первых, позвольте мне описать сценарий, подобный тому, с которым я столкнулся; чтобы лучше объяснить мою проблему. В этом случае я создаю систему, которая должна выбрать «n» случайных записей в блоге из таблицы, а затем получить ответы на все выбранные сообщения.SQLite Inner Join with Limit on Left Table
Представьте свою структуру таким образом:
blog_posts(id INTEGER PRIMARY KEY, thepost TEXT)
blog_replies(id INTEGER PRIMARY KEY, postid INTEGER FOREIGN KEY REFERENCES blog_posts(id), thereply TEXT)
Это текущий SQL у меня есть, но я получаю сообщение об ошибке:
SELECT blog_post.id, blog_post.thepost, blog_replies.id, blog_replies.thereply
FROM (SELECT blog_post.id, blog_post.thepost FROM blog_post ORDER BY RANDOM() LIMIT ?)
INNER JOIN blog_replies
ON blog_post.id=blog_replies_options.postid;
Здесь ошибка:
sqlite3.OperationalError: no such column: hmquestion.id
Ошибка, которую вы получаете, потому что вы ничего не выбираете из этой таблицы. Вы перевели логику в свой подзапрос. Попробуйте добавить псевдоним к вашему подзапросу 'hmquestion' -' select ... from (...) hmquestion inner ... ' – sgeddes
В тексте упоминаются три таблицы, которые я не вижу в SQL. Можете ли вы исправить вопрос, так что текст и SQL относятся к одной теме? –
@sgeddes, сможете ли вы расширить то, что вы говорите. Я довольно новичок в SQL и не совсем уверен, что вы имеете в виду. – Braden1996