我有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) 我正在寻找一种方法将字符串数组合成一个分隔的字符串.与split()相反.
在我尝试编写自己的论坛之前想要问论坛(因为JDK拥有一切)
我读了许多关于只获得左连接的第一行的线程,但是,由于某种原因,这对我不起作用.
这是我的结构(当然简化)
饲料
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 …
我正在尝试使用两列连接两个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)
知道应该采取什么样的正确方法吗?谢谢!
我有两张桌子想加入.
我想要类别表中的所有类别以及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表中.
谢谢
我有很多看起来像的列表
['it']
['was']
['annoying']
Run Code Online (Sandbox Code Playgroud)
我希望以上看起来像
['it', 'was', 'annoying']
Run Code Online (Sandbox Code Playgroud)
我如何实现这一目标?
我有以下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"值.
以下图像是Microsoft SQL Server 2008 R2系统视图的一部分.从图片我们可以看到,之间的关系sys.partitions和sys.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中实现自定义分页,例如阅读像这样的文章.
我有以下查询,它完美地工作.但我想用这个实现分页.
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函数实现为文章中的那个,但实际上没有运气.
有什么想法如何实现呢?
在MySQL中,我有两个不同的数据库-我们姑且称之为一个和乙.
是否可以在数据库A中的表与数据库B中的表之间执行连接?
join ×10
mysql ×4
sql ×4
python ×3
pandas ×2
sql-server ×2
case ×1
java ×1
left-join ×1
list ×1
merge ×1
pagination ×1
python-3.x ×1
split ×1
string ×1
where-clause ×1