标签: join

如何使用ID连接多个SQL表?

我有4个不同的表,我想加入.这些表的结构如下:

TableA - aID | nameA | dID

TableB - bID | nameB | cID | aID

TableC - cID | nameC | date

TableD - dID | nameD
Run Code Online (Sandbox Code Playgroud)

从表A开始,我理解如何使用b来连接表a和c,因为b具有这些表的主键.我希望能够在TableA上加入表TableD.下面是我的SQL语句,它首先连接表A和B,然后将它连接到C:

SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
WHERE (DATE(TableC.date)=date(now())) 
Run Code Online (Sandbox Code Playgroud)

当我尝试添加另一个连接时,要包含D,我得到一个'TableD'未知的错误:

 SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM (TableB INNER JOIN TableA
    ON TableB.aID= TableA.aID)
    INNER JOIN TableC ON(TableB.cID= Tablec.cID)
    INNER JOIN TableA ta ON(ta.dID= TableD.dID)
    WHERE (DATE(TableC.date)=date(now())) 
Run Code Online (Sandbox Code Playgroud)

mysql sql join

137
推荐指数
2
解决办法
44万
查看次数

一种反转java String.split()效果的方法?

我正在寻找一种方法将字符串数组合成一个分隔的字符串.与split()相反.

在我尝试编写自己的论坛之前想要问论坛(因为JDK拥有一切)

java string split join

125
推荐指数
7
解决办法
12万
查看次数

LEFT JOIN仅第一行

我读了许多关于只获得左连接的第一行的线程,但是,由于某种原因,这对我不起作用.

这是我的结构(当然简化)

饲料

id |  title | content
----------------------
1  | Feed 1 | ...
Run Code Online (Sandbox Code Playgroud)

艺术家

artist_id | artist_name
-----------------------
1         | Artist 1
2         | Artist 2
Run Code Online (Sandbox Code Playgroud)

feeds_artists

rel_id | artist_id | feed_id
----------------------------
1      |     1     |    1 
2      |     2     |    1 
...
Run Code Online (Sandbox Code Playgroud)

现在我想获得文章并加入第一位艺术家,我想到了这样的事情:

SELECT *
    FROM feeds 
    LEFT JOIN feeds_artists ON wp_feeds.id = (
        SELECT feeds_artists.feed_id FROM feeds_artists
        WHERE feeds_artists.feed_id = feeds.id 
    LIMIT 1
    )
WHERE feeds.id = '13815'
Run Code Online (Sandbox Code Playgroud)

只是为了获得feed_artists的第一行,但这已经不起作用了.

我无法使用TOP因为我的数据库而且我无法对结果进行分组,feeds_artists.artist_id因为我需要按日期对它们进行排序(我通过这种方式对结果进行分组,但结果不是最新的)

用OUTER …

mysql join left-join groupwise-maximum

125
推荐指数
4
解决办法
17万
查看次数

pandas:在多列上合并(连接)两个数据帧

我正在尝试使用两列连接两个pandas数据帧:

new_df = pd.merge(A_df, B_df,  how='left', left_on='[A_c1,c2]', right_on = '[B_c1,c2]')
Run Code Online (Sandbox Code Playgroud)

但得到以下错误:

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4164)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4028)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13166)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13120)()

KeyError: '[B_1, c2]'
Run Code Online (Sandbox Code Playgroud)

知道应该采取什么样的正确方法吗?谢谢!

python join python-3.x pandas

122
推荐指数
5
解决办法
25万
查看次数

MySQL与where子句连接

我有两张桌子想加入.

我想要类别表中的所有类别以及category_subscriptions表中用户订阅的所有类别.

基本上这是我目前的查询:

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions 
     ON user_category_subscriptions.category_id = categories.category_id
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想在查询的末尾添加一个where子句,然后基本上使它成为内部/ equi连接.

   SELECT *
    FROM categories
    LEFT JOIN user_category_subscriptions 
         ON user_category_subscriptions.category_id = categories.category_id 
   WHERE user_category_subscriptions.user_id = 1
Run Code Online (Sandbox Code Playgroud)

如何仅使用一个查询获取特定用户订阅的所有类别以及所有类别?

category_id是类别表和user_category_subscriptions中的键.user_id驻留在user_category_subscriptions表中.

谢谢

mysql join where-clause

121
推荐指数
2
解决办法
18万
查看次数

120
推荐指数
3
解决办法
25万
查看次数

Pandas join问题:列重叠但未指定后缀

我有以下2个数据框:

df_a =

     mukey  DI  PI
0   100000  35  14
1  1000005  44  14
2  1000006  44  14
3  1000007  43  13
4  1000008  43  13

df_b = 
    mukey  niccdcd
0  190236        4
1  190237        6
2  190238        7
3  190239        4
4  190240        7
Run Code Online (Sandbox Code Playgroud)

当我尝试加入这两个数据帧时:

join_df = df_a.join(df_b,on='mukey',how='left')
Run Code Online (Sandbox Code Playgroud)

我收到错误:

*** ValueError: columns overlap but no suffix specified: Index([u'mukey'], dtype='object')
Run Code Online (Sandbox Code Playgroud)

为什么会这样?数据帧确实具有常见的"mukey"值.

python join pandas

119
推荐指数
4
解决办法
13万
查看次数

我可以在JOIN条件下使用CASE语句吗?

以下图像是Microsoft SQL Server 2008 R2系统视图的一部分.从图片我们可以看到,之间的关系sys.partitionssys.allocation_units依赖的价值sys.allocation_units.type.所以要将它们连接在一起,我会写一些与此类似的东西:

SELECT  *
FROM    sys.indexes i
        JOIN sys.partitions p
            ON i.index_id = p.index_id 
        JOIN sys.allocation_units a
            ON CASE
               WHEN a.type IN (1, 3)
                   THEN a.container_id = p.hobt_id 
               WHEN a.type IN (2)
                   THEN a.container_id = p.partition_id
               END 
Run Code Online (Sandbox Code Playgroud)

但是上面的代码给出了语法错误.我猜这是因为CASE声明.任何人都可以帮忙解释一下吗?

谢谢!


添加错误消息:

消息102,级别15,状态1,行6'='附近的语法不正确.

这是图像

sql sql-server join case

118
推荐指数
6
解决办法
39万
查看次数

使用此查询实现分页(跳过/获取)功能

我一直试图了解如何在SQL中实现自定义分页,例如阅读像这样的文章.

我有以下查询,它完美地工作.但我想用这个实现分页.

SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate
 from dbForumEntry 
 group by PostId ) SubQueryAlias
 order by LastDate desc
Run Code Online (Sandbox Code Playgroud)

我想要的是什么

我有论坛帖子,有相关条目.我想获得最新添加的条目的帖子,所以我可以选择最近辩论的帖子.

现在,我希望能够获得"最近10到20个活跃的帖子",而不是"前10名".

我试过了什么

我试图将ROW函数实现为文章中的那个,但实际上没有运气.

有什么想法如何实现呢?

sql sql-server pagination join

118
推荐指数
4
解决办法
12万
查看次数

在两个不同数据库的表之间加入?

在MySQL中,我有两个不同的数据库-我们姑且称之为一个.

是否可以在数据库A中的表与数据库B中的表之间执行连接?

mysql sql join

117
推荐指数
2
解决办法
12万
查看次数