标签: join

为什么这不起作用?''.join(''.join(string).split().remove(str [n]))

我正在玩,codingbat.com,我发现这个问题很容易解决,所以我开始尝试打新手代码高尔夫.

给定非空字符串和int n,返回一个新字符串,其中索引n处的char已被删除.n的值将是原始字符串中char的有效索引(即n将在0..len(str)-1的范围内).

missing_char( '小猫',1)→ 'ktten'
missing_char( '小猫',0)→ '伊顿'
missing_char( '小猫',4)→ 'kittn'

Das代码:

def missing_char(str, n):
  return ''.join(' '.join(str).split().remove(str[n]))
Run Code Online (Sandbox Code Playgroud)

奇怪的是,Python不会解释这一点.
为什么不?

python string join behavior

0
推荐指数
2
解决办法
643
查看次数

如何选择2个表而不会相互覆盖?

我目前在我的数据库中有2个具有相同列的表.里面的数据是不同的,但我需要将它们组合成一个带有查询的表.

我尝试使用连接,但不知怎的,我知道它会覆盖另一个连接.

php sql database join

0
推荐指数
1
解决办法
125
查看次数

php mysql加入3个表

我循环通过用户页面上的反馈类型评论系统,找到最新的6个帖子.

要显示我想要的帖子,我必须从3个表中获取数据.

我认为如果它只是在一个查询中被拉出来的话,它会减少数据库密集度,但我不确定如何编写它,对JOIN和事情很糟糕.

这是我现有的代码

$sql_result = mysql_query("SELECT * FROM feedback WHERE user='1' ORDER BY date desc LIMIT 6", $db);
while($rs = mysql_fetch_array($sql_result)) {

   $sql_result2 = mysql_query("SELECT * FROM members WHERE id= '$rs[author]'", $db); 
   $rs2 = mysql_fetch_array($sql_result2);

   if ($rs2[clan] != 0) { 
      $sql_result3 = mysql_query("SELECT * FROM clans WHERE id= '$rs2[clan]' LIMIT 1", $db);
      $rs3 = mysql_fetch_array($sql_result3);

     // write comment
Run Code Online (Sandbox Code Playgroud)

有人能给我一个线索吗?

mysql join

0
推荐指数
1
解决办法
2549
查看次数

SQL连接甚至没有这样的id

我有以下查询:

SELECT * FROM 
   (
       SELECT 
       catalog.*,
       images.image 
       FROM `catalog` as catalog 
       INNER JOIN `type5` as images ON catalog.id = images.id 
       WHERE catalog.left_key > (SELECT `left_key` FROM `catalog` WHERE `id`=235) AND catalog.right_key < (SELECT `right_key` FROM `catalog` WHERE `id`=235)
       ORDER BY catalog.left_key ASC
   ) ilv
Run Code Online (Sandbox Code Playgroud)

此查询运行良好,但仅当表type5中的项目ID相同时,它才会选择FROM目录.

例如,在目录中,我有:

id name
 5 Hello
 7 World
 8 Foo
 9 Bar
Run Code Online (Sandbox Code Playgroud)

在类型5我有:id图像

 5 hello.png
 8 foo.png
 9 bar.png
Run Code Online (Sandbox Code Playgroud)

它只会选择

 5 Hello
 8 Foo
 9 Bar
Run Code Online (Sandbox Code Playgroud)

即使在type5中没有相同的id,如何编辑我的查询以从目录中选择项目?

mysql sql join inner-join

0
推荐指数
1
解决办法
517
查看次数

使用SQL中的UNION调用嵌套INNER JOIN - 相当丢失

我有一个friends表:id,fid1,fid2表示两个用户(双向)之间的友谊.

users表:fid,name

我想创建一个函数或查询

  1. 用户身份

并返回

  1. 朋友列表(users.fid,users.name),代表所有朋友,他们是具有原始用户ID的朋友

我在嵌套JOIN和UNION时遇到了麻烦.我需要UNION确保我获得所有友谊(但也不要重复).这是我到目前为止所得到的:

SELECT fid1 as friends FROM friendships WHERE fid2 = 123456
INNER JOIN users
ON friendships.fid1 = users.fid

UNION ALL (

SELECT fid2 as friends FROM friendships WHERE fid1 = 123456
INNER JOIN users
ON friendships.fid2 = users.fid
)
Run Code Online (Sandbox Code Playgroud)

这是一个错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for …
Run Code Online (Sandbox Code Playgroud)

mysql sql union join mysql-error-1064

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

mysql计数加入

SELECT A.id as ActivityId, A.description, T.id, T.title, COUNT(R.*) as reactionCount
FROM activities 
LEFT JOIN activitiesReactions as R ON R.activityId = A.id
LEFT JOIN activitiesTags as T ON A.tagId = T.id
Run Code Online (Sandbox Code Playgroud)

所以基本上我需要一个能够获得所有活动的查询,同时得不到该活动的反应但得到COUNT的反应,这些反应可以在另一个名为activitiesReactions的表中找到,我该怎么做(参见上面的查询我想到的).

所以查询应该返回:

array('activityId' => 3, 'description' => 'doing work', 'reactionCount' => 2)
Run Code Online (Sandbox Code Playgroud)

一个示例行:

Activities table:
id | description
 3   doing work
 4   checking mail

ActivitiesReactions table:
id | activityId | message
 1            3   you never do anywork, so that must be bullshit.
 2            3   yes I do alot of work! …
Run Code Online (Sandbox Code Playgroud)

mysql sql join count

0
推荐指数
1
解决办法
7559
查看次数

SQL Server:你为什么要在运算符的左侧进行转换?

我正在使用SQL Server 2005.

我正在和我的一个朋友一起编写代码,仅举一个例子,我去了左侧的联接.

JOIN t on cast(a.foo as int) = b.foo
Run Code Online (Sandbox Code Playgroud)

他告诉我永远不要这样做,因为我失去了索引的所有性能优势.

你为什么要故意这样做?

sql t-sql casting join sql-server-2005

0
推荐指数
1
解决办法
1001
查看次数

我如何加入这些表格?

我有许多设备在不同的时间记录不同的数据,并希望在一个查询中获取所有数据,按时间排序.我所拥有的各种表格的一个例子:

CREATE TABLE location(
    device_id INT, -- REFERENCES device(id)
    timestamp DATETIME2 NOT NULL,
    position GEOMETRY NOT NULL
)

CREATE TABLE temperature(
    device_id INT, -- REFERENCES device(id)
    timestamp DATETIME2 NOT NULL,
    temp FLOAT NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

我希望有一个单独的查询连接在device_id和timestamp上的表,当时间戳不匹配时,它包含空值.我正在寻找的输出格式的一个例子是:

device_id, timestamp, location, temperature
1, 2011/12/1 10:00:00, (35.1, 139.2), NULL
1, 2011/12/1 10:00:01, NULL, 9.0
1, 2011/12/1 10:00:02, (35.1, 139.2), 9.1
Run Code Online (Sandbox Code Playgroud)

我已经尝试过FULL JOIN但是无法弄清楚如何在没有巨大的CASE语句的情况下执行timestamp列(请记住,虽然我只显示了2个表,但是可以有更多表).

SELECT 
    location.device_id, 
    CASE WHEN location.timestamp IS NOT NULL THEN
        location.timestamp
    ELSE 
        temperature.timestamp 
    END as timestamp, 
    location,
    temp
FROM
    location 
    FULL JOIN …
Run Code Online (Sandbox Code Playgroud)

sql sql-server join

0
推荐指数
1
解决办法
83
查看次数

如何选择表#1中的结果按表#2中的结果过滤?

好吧,我有两张桌子:

  • events:id,title,description
  • trip_events:id,event_id(指向events.id)

我需要从名为table的表中选择结果events.

SELECT *
FROM `events`
Run Code Online (Sandbox Code Playgroud)

就这么简单吧?

我需要实现的是,我需要从中选择结果events,但排除那些中的行trip_events(如果events.id!= trip_events.event_id排除).

这是一个例子:

events:

  • id:5,
  • id:6,
  • id:7,
  • id:8;

trip_events:

  • event_id:6,
  • event_id:8;

使用此数据集,仅返回id为5和的事件6.

这该怎么做?

我试过这样的:

SELECT *
FROM `events`
JOIN …
Run Code Online (Sandbox Code Playgroud)

mysql sql join filter

0
推荐指数
1
解决办法
423
查看次数

Ruby,按键检索子对象

我试图根据其父表中的键检索子对象.例如,我有一个Customer类,其中包含Stores表的"store_id"键.如果客户有"store_id"键,我想带回那个Store对象而不是父Customer对象.

编辑:这是一个sql语句显示我想要做什么.

所以SQL语句看起来像这样.

"SELECT storeS.*FROM FROM INNER JOIN store ON customers.store_id = storeS.id WHERE customers.id ='9'"

我知道sql可能是错误的,但这是一种非常简洁的方式来显示它.

ruby activerecord join inner-join ruby-on-rails-3

0
推荐指数
1
解决办法
105
查看次数