Tag: inner join

MySQL查询以获得有限的许多查询的“交集”

假设我有一个单一的mySQL表(用户)与以下字段: userid gender region age ethnicity income 我希望能够根据用户input的数字返回总logging数。 此外,他们也将提供额外的标准。 最简单的例子是,他们可能会要求1,000条logging,其中600条logging应该有性别=“男性”,400条logging的性别=“女性”。 这很简单。 现在,更进一步。 假设他们现在想要指定区域: GENDER Male: 600 records Female: 400 records REGION North: 100 records South: 200 records East: 300 records West: 400 records 再次,只有1000条logging应该返回,但最后必须有600名男性,400名女性,100名北方人,200名南方人,300名东方人和400名西方人。 我知道这是不正确的语法,但使用伪mySQL代码,它希望说明我正在尝试做什么: (SELECT * FROM users WHERE gender = 'Male' LIMIT 600 UNION SELECT * FROM users WHERE gender = 'Female' LIMIT […]

Rails的ActiveRecord:连接与左连接,而不是INNER JOIN

我有这个代码 User.find(:all, :limit => 10, :joins => :user_points, :select => "users.*, count(user_points.id)", :group => "user_points.user_id") 其中生成以下SQL SELECT users.*, count(user_points.id) FROM `users` INNER JOIN `user_points` ON user_points.user_id = users.id GROUP BY user_points.user_id LIMIT 10 是否有可能使用LEFT JOIN而不是INNER JOIN,除了User.find_by_sql和manualy键入查询?

WHERE子句与ON时使用JOIN

假设我有以下T-SQL代码: SELECT * FROM Foo f INNER JOIN Bar b ON b.BarId = f.BarId; WHERE b.IsApproved = 1; 下面的一个也返回相同的一组行: SELECT * FROM Foo f INNER JOIN Bar b ON (b.IsApproved = 1) AND (b.BarId = f.BarId); 这可能不是最好的例子,但这两者之间有什么performance差异?

在Oracle上使用内连接更新语句

我有一个在MySQL中正常工作的查询,但是当我在Oracle上运行它时,出现以下错误: SQL错误:ORA-00933:SQL命令未正确结束 00933. 00000 – “SQL命令未正确结束” 查询是: UPDATE table1 INNER JOIN table2 ON table1.value = table2.DESC SET table1.value = table2.CODE WHERE table1.UPDATETYPE='blah';