Left Join and Left Outer 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键入查询?
我需要从设置表中检索所有的默认设置,但如果存在x字符,也可以抓取字符设置。 但是这个查询只是检索字符是= 1的那些设置,而不是用户没有设置任何人的默认设置。 SELECT `settings`.*, `character_settings`.`value` FROM (`settings`) LEFT JOIN `character_settings` ON `character_settings`.`setting_id` = `settings`.`id` WHERE `character_settings`.`character_id` = '1' 所以我应该需要这样的东西: array( '0' => array('somekey' => 'keyname', 'value' => 'thevalue'), '1' => array('somekey2' => 'keyname2'), '2' => array('somekey3' => 'keyname3') ) 当键0包含字符值的默认值时,键1和2是默认值。
我必须显示在我的应用程序中的总列与总计运行总数…所以我已经使用以下查询来查找运行总数…我发现,两者都按照我的需要工作。 在一个我使用了左边的连接,并在另一个我使用子查询。 现在我的问题是,当我的数据以每天数千的增长速度哪一个更快,并且如果数据将限制在1000或2000行,那么哪一个更好…以及其他哪个更快,那么这两个? ?? declare @tmp table(ind int identity(1,1),col1 int) insert into @tmp select 2 union select 4 union select 7 union select 5 union select 8 union select 10 SELECT t1.col1,sum( t2.col1) FROM @tmp AS t1 LEFT JOIN @tmp t2 ON t1.ind>=t2.ind group by t1.ind,t1.col1 select t1.col1,(select sum(col1) from @tmp as t2 where t2.ind<=t1.ind) […]
使用扩展语法我试图创build一个左连接使用两个列表上的LINQ我有。 以下是来自Microsoft的帮助,但我已经修改它显示宠物列表没有元素。 我最终得到的是0个元素的列表。 我认为这是因为内部连接正在发生。 我想要结束的是3个元素(3个Person对象)的列表,其中填充了缺失元素的空数据。 即一个左连接。 这可能吗? Person magnus = new Person { Name = "Hedlund, Magnus" }; Person terry = new Person { Name = "Adams, Terry" }; Person charlotte = new Person { Name = "Weiss, Charlotte" }; //Pet barley = new Pet { Name = "Barley", Owner = terry }; //Pet boots […]
如何更改此查询,以便返回所有u.usergroups? from u in usergroups from p in u.UsergroupPrices select new UsergroupPricesList { UsergroupID = u.UsergroupID, UsergroupName = u.UsergroupName, Price = p.Price };
我有两个postgresql表: table name column names ———– ———————— login_log ip | etc. ip_location ip | location | hostname | etc. 我想从login_log获取login_log中没有一行的每个IP地址。 我试过这个查询,但它引发了一个语法错误。 SELECT login_log.ip FROM login_log WHERE NOT EXIST (SELECT ip_location.ip FROM ip_location WHERE login_log.ip = ip_location.ip) ERROR: syntax error at or near "SELECT" LINE 3: WHERE NOT EXIST (SELECT ip_location.ip` 我也想知道,如果这个查询(使其工作调整)是最好的查询为此目的。