标签: self-join

什么是SELF JOIN以及何时使用它?

可能重复:
sql:self-joins解释

什么是自我加入,你什么时候使用它?我不明白自我加入,所以一个例子的外行解释会很棒.

sql self-join

98
推荐指数
5
解决办法
42万
查看次数

最简单的递归自联接方式?

在SQL Server中执行递归自联接的最简单方法是什么?我有这样一张桌子:

PersonID | Initials | ParentID
1          CJ         NULL
2          EB         1
3          MB         1
4          SW         2
5          YT         NULL
6          IS         5
Run Code Online (Sandbox Code Playgroud)

而且我希望能够获得仅与特定人员开始的层次结构相关的记录.所以,如果我通过PersonID = 1请求CJ的层次结构,我会得到:

PersonID | Initials | ParentID
1          CJ         NULL
2          EB         1
3          MB         1
4          SW         2
Run Code Online (Sandbox Code Playgroud)

对于EB,我会得到:

PersonID | Initials | ParentID
2          EB         1
4          SW         2
Run Code Online (Sandbox Code Playgroud)

我有点卡住这个可以想不出怎么做除了基于一堆连接的固定深度响应.这会发生,因为我们不会有很多级别,但我想做得恰到好处.

谢谢!克里斯.

sql sql-server recursion self-join hierarchical-data

93
推荐指数
3
解决办法
9万
查看次数

自连接的说明

我不明白自我加入的必要性.有人可以向我解释一下吗?

一个简单的例子非常有用.

sql self-join

78
推荐指数
5
解决办法
3万
查看次数

INNER JOIN同桌

我试图从同一个表中获取一些行.这是一个用户表:用户有user_iduser_parent_id.

我需要得到user_id行和user_parent_id行.我编写了这样的代码:

SELECT user.user_fname, user.user_lname
FROM users as user
INNER JOIN users AS parent
ON parent.user_parent_id = user.user_id
WHERE user.user_id = $_GET[id]
Run Code Online (Sandbox Code Playgroud)

但它没有显示结果.我想显示用户记录及其父记录.

mysql sql join self-join

21
推荐指数
1
解决办法
8万
查看次数

无法理解EclipseLink警告

我正在使用EclipseLink 2.3.1使用JPA 2为自引用表建模.在创建EntityManager时,我从EclipseLink获得了奇怪的警告.

[EL Warning]: 2011-11-27 14:28:00.91--ServerSession(8573456)--Reverting the lazy setting on the OneToOne or ManyToOne attribute [redirectID] for the entity class [class lp.db.model.Site] since weaving was not enabled or did not occur.
Run Code Online (Sandbox Code Playgroud)

我找不到有关此警告的任何文档,我不确定它的含义.我也想知道如何解决导致此警告出现的问题......

我是JPA的新手,所以这可能是个愚蠢的事情.我的程序非常简单.这是实体定义:

@Entity
@Table(name="site") 
public class Site implements Serializable {

private static final long serialVersionUID = 1L;

    @Id
    @Column(name="site_id")
    public String siteID;

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="redirect_id", referencedColumnName="site_id")
    public Site redirectID;

    @Column(name="name")
    public String name;
}
Run Code Online (Sandbox Code Playgroud)

这是persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="lpdb2" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>lp.db.model.Site</class> …
Run Code Online (Sandbox Code Playgroud)

jpa self-join eclipselink

18
推荐指数
1
解决办法
6827
查看次数

实体框架4.1代码优先自我引用一对多和多对多关联

我有一个用户可以收集他喜欢的用户...

另一个用户可以收集他喜欢的用户....

如果用户A喜欢用户B,并且用户B喜欢用户A,那么他们就会挂出.我需要向对方发送他们的联系信息.我们如何在Entity Framework Code First中代表这样的模型?

public class User
{
    public int UserId { get; set; }

    public int? UserLikeId { get; set; }
    public virtual UserLike UserLike { get; set; }
}

public class UserLike
{
    public int UserLikeId { get; set; }

    public int UserId { get; set; }
    public virtual User User { get; set; }

    public virtual ICollection<User> LikeUsers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这个型号是否正确?我不能让这个工作.

我尝试过另一种方式,但这也不行...

我试图将用户集合添加到用户表.

例如:

public virtual ICollection<User> userlike { get; set; } …
Run Code Online (Sandbox Code Playgroud)

entity-framework self-join self-reference ef-code-first entity-framework-4.1

17
推荐指数
1
解决办法
9895
查看次数

来自sql中的交叉连接的组合(不是排列)

如果我有一个我想要交叉连接的表,我该如何删除重复的行?换句话说,我怎么能做一个"订单无所谓"交叉加入?

所以例如,如果我有一个表T:

field |
-------
   A  |
   B  |
   C  |
Run Code Online (Sandbox Code Playgroud)

我交叉加入自己,所以我没有得到A | 一排

T as t1
cross join
T as t2
  on t1.field != t2.field
Run Code Online (Sandbox Code Playgroud)

我会得到以下内容:

field | field
------+-------
  A   |   B
  A   |   C
  B   |   A
  B   |   C
  C   |   A
  C   |   B
Run Code Online (Sandbox Code Playgroud)

但是,对我来说A,B与B,A相同.

有没有一个很好的方法来删除这些重复?换句话说,我希望组合而不是排列.

sql self-join cross-join

16
推荐指数
1
解决办法
6671
查看次数

R:使用data.table和self-join按组进行首次观察

我正在尝试使用data.table通过一组三个变量获得最高行.

我有一个有效的解决方案:

col1 <- c(1,1,1,1,2,2,2,2,3,3,3,3)
col2 <- c(2000,2000,2001,2001,2000,2000,2001,2001,2000,2000,2001,2001)
col4 <- c(1,2,3,4,5,6,7,8,9,10,11,12)
data <- data.frame(store=col1,year=col2,month=12,sales=col4)

solution1 <- data.table(data)[,.SD[1,],by="store,year,month"]
Run Code Online (Sandbox Code Playgroud)

我使用Matthew Dowle在以下链接中建议的较慢方法:

https://stats.stackexchange.com/questions/7884/fast-ways-in-r-to-get-the-first-row-of-a-data-frame-grouped-by-an-identifier

我正在尝试实现更快的自联接但无法使其工作.

有没有人有什么建议?

r self-join data.table

16
推荐指数
1
解决办法
6223
查看次数

Rails:自我指导有多少模型有效?

所以,我正在开发一个应用程序,我希望用户能够在"文件夹"中对对象进行分组.基本上:

User has_many :foos

Foos不必在文件夹中,但它们可以.在这种情况下:

Folder has_many :foosFoo belongs_to :folder

现在,我希望能够设置文件夹,以便它们可以嵌套.我觉得这就像......

Folder has_many :folders

我听说这种自我指涉关系没什么大不了的,但我真的不知道它是如何运作的.我无法弄清楚应该如何在模型中声明这个以及我需要在数据库中提供哪些列.

有人可以提供一个例子吗?我还重视您在应用程序中建立此类关系时可能提供的任何建议/提醒/警告/经验教训.

谢谢!

activerecord model ruby-on-rails self-join ruby-on-rails-3

15
推荐指数
1
解决办法
2万
查看次数

Rails:与has_and_belongs_to_many的自联接方案?

我想创建一个包含Users许多friends类的结构User:

class User < ActiveRecord::Base
  has_and_belongs_to_many :friends, class_name: "User"
end
Run Code Online (Sandbox Code Playgroud)

我不需要他们关系的任何细节,因此我不会使用:through某种类Friendship.但现在我找不到任何方法来创建相应的数据库(既不使用迁移文件也不使用rails g model User username:string ...命令).有任何想法吗?

ruby-on-rails self-join

15
推荐指数
1
解决办法
8384
查看次数