以下查询尝试执行可表示为@users.courses
(其中@ user.id = 1)的内容。我给这个信息,我不能完全肯定这是否是正确的,因为查询不会运行SQL抱怨现有字段
SELECT * FROM courses WHERE courses.id =
courses_users.user_id AND courses_users.user_id = 1
SQL抱怨:
#1054 - 未知列“courses_users.user_id”在'where子句中'
我确定所有这些字段都存在,所以我不确定我在做什么错。
如果我发现没有'JOIN'查询更容易理解它是一个问题吗?它被认为是“坏代码”? – Bula
隐式联接(第一个示例)在大多数RDBMS中都被视为弃用。他们不是严格禁止的,但是继续使用它们通常被认为是不好的做法。 – Mureinik
另外我刚刚发现为了实现我使用rails语法描述的第二行必须替换为'courses.id = courses_users.course_id' – Bula