我想在两个表之间建立连接.我正在运行的命令是:
r.table("userclientmap").eq_join("user_id", r.table("users"))
Run Code Online (Sandbox Code Playgroud)
我的'用户'表格如下所示:
[
{
"email": "nielsen.ruben@gmail.com"
"password": "$2a$10$nO4/KHYkKRcx3D8GYwMCVu.gtsWd1SWzWz27N.TdxqdD9bf.LBXI6"
}
]
Run Code Online (Sandbox Code Playgroud)
我的'userclientmap'表如下所示:
[
{
"client_id": "3c0e6447-ab2f-401e-a09d-d84c32406fe2" ,
"id": "d6356002-9e51-4f82-afb7-49799f7b5ded" ,
"user_id": "nielsen.ruben@gmail.com"
}
]
Run Code Online (Sandbox Code Playgroud)
从管理控制台运行我的查询时收到以下错误:
无法执行查询.
r.table("userclientmap").eq_join("user_id", r.table("users"))
Run Code Online (Sandbox Code Playgroud)
错误:
TypeError: Object function () {
var args;
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
if (args.length !== fun.length) {
throw new err.RqlDriverError("Expected " + fun.length + " argument(s) but found " + args.length + ".");
}
return fun.apply(this, args);
} has no method 'eq_join'
Run Code Online (Sandbox Code Playgroud)
我真的不知道从哪里开始.我的查询与http://rethinkdb.com/docs/table-joins/上的文档完全相同 …
我在为以下问题解决sql时遇到问题。我有两个这样的表:
+----------+------------+------------+
| event_id | event_name | event_date |
+----------+------------+------------+
+---------------+----------+---------+--------+
| attendance_id | event_id | user_id | status |
+---------------+----------+---------+--------+
Run Code Online (Sandbox Code Playgroud)
我正在尝试做的就是获得一个这样的表:
+----------+--------+
| event_id | status |
+----------+--------+
Run Code Online (Sandbox Code Playgroud)
其中第二个出勤表的条件是user_id。我正在尝试获取所有事件的列表以及这些事件中每个事件的用户状态,即使出勤率内没有记录(现在可以使用NULL)。同样,来自考勤表的状态数据需要由user_id选择。
从我最初的研究中,我认为这会起作用:
SELECT event_id, status FROM events LEFT JOIN attendance WHERE attendance.user_id='someoutsideinput' ORDER BY event_date ASC
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用。我应该怎么做?
谢谢!
我有两个文件,我正在执行连接操作,如下所示:
nmmadaan@nmmadaan] cat one.txt ~
a b
e f
c k
nmmadaan@nmmadaan] cat two.txt ~
a h
c j
e p
nmmadaan@nmmadaan] join one.txt two.txt ~
a b h
e f p
nmmadaan@nmmadaan] join two.txt one.txt ~
a h b
e p f
Run Code Online (Sandbox Code Playgroud)
为什么加入two.txt,one.txt不会将第一列的行作为'c'.为什么两个人一起考虑第一列中的'e'行?
假设我有两张这样的桌子
现在我想要做正确的加入Menu_Table
有Menu_access_Table
.
我想从中获取所有行Menu_Table
.
SELECT
*
FROM
Menu_Table
RIGHT JOIN
Menu_Access_Table ON Menu_Table.menu_id = Menu_Access_Table.menu_id
WHERE
Menu_Access_Table.user_id=11
Run Code Online (Sandbox Code Playgroud)
如果user_id=11
我下面没有条目,我仍然希望从中获取所有行Menu_Table
!可能吗?我正在使用SQL Server 2012.
在大多数情况下,这两个SQL语句中的哪一个会花费更少的时间?
1)
SELECT table_a.foo,
table_b.zoo
FROM table_a,
table_b
WHERE table_a.id = table_b.id
AND table_b.bar = 'something'
Run Code Online (Sandbox Code Playgroud)
2)
SELECT table_a.foo,
tableb.zoo
FROM table_a,
(SELECT *
FROM table_b
WHERE bar = 'something') AS tableb
WHERE table_a.id = tableb.id
Run Code Online (Sandbox Code Playgroud)
或者他们是一样的吗?
似乎(2)会更快......
我基本上有一个类似的查询:
SELECT * FROM news
LEFT JOIN tags ON tags.newsid = news.id
Run Code Online (Sandbox Code Playgroud)
现在让我们说,我希望得到所有news
具有标记(tags
表中的行)的行,其tags.name
值为"test",另一个标记的tags.name
值为"test2".所以基本上,我想检查连接表中的两个值,如果它们都在那里,那么返回该news
行.
这怎么可能?很抱歉,如果之前有人询问,我真的不知道在搜索这个特定问题时我会使用哪种关键字,因为它非常复杂.
我有一个table_1:
id custno
1 1
2 2
3 3
Run Code Online (Sandbox Code Playgroud)
和table_2:
id custno qty
1 1 10
2 1 7
3 2 4
4 3 7
5 1 5
6 1 5
Run Code Online (Sandbox Code Playgroud)
当我运行此查询以显示每个客户的最小订单数量时:
SELECT table_1.custno,table_2.qty
FROM table_1 LEFT OUTER JOIN table_2 ON table_1.custno = table_2.custno AND
qty = (SELECT MIN(qty) FROM table_2 WHERE table_2.custno = table_1.custno )
Run Code Online (Sandbox Code Playgroud)
然后我得到这个结果:
custno qty
1 5
1 5
2 4
3 7
Run Code Online (Sandbox Code Playgroud)
如何获得qty
每个的最小值custno
?
我怎么能这样做?
谢谢!
您好我有以下两个表:
表A:
Field1 | Field2
---------------
9911-4 | 4800
9911-6 | 400
9911-9 | 480
785-25 | 455
6523-1 | 221
Run Code Online (Sandbox Code Playgroud)
在表B中我有:
ID | Name
------------
9911 | A
785 | B
Run Code Online (Sandbox Code Playgroud)
因此,TableA中的Field1具有ID号,并且必须与TableB的字段ID连接.
输出必须是:
ID | Name
------------
9911 | A
785 | B
Run Code Online (Sandbox Code Playgroud)
但ID必须是TableA的Field1的JOINT.TableA中的Field1具有NUMBER-NUMBER,其中第一个数字是TableB的ID
提前致谢
COMMISSION
表
PRODUCT_ID DATE COMMISSION
1 20110101 27.00
1 20120101 28.00
1 20130705 30.00
2 20110101 17.00
2 20120501 16.00
2 20130101 18.00
...
Run Code Online (Sandbox Code Playgroud)
ORDER
表
PRODUCT_ID DATE PRICE
1 20110405 2500
2 20130402 3000
2 20130101 1900
Run Code Online (Sandbox Code Playgroud)
期望的输出
PRODUCT_ID DATE PRICE COMMISSION
1 20110405 2500 27.00
2 20130402 3000 16.00
2 20130101 1900 18.00
Run Code Online (Sandbox Code Playgroud)
Commission
表根据产品ID和日期记录佣金%.Order
表基本上是特定日期下订单的记录,我想加入两张桌子并根据订单日期提供适当的佣金.例如,您可以看到第一个订单的佣金为27.00,因为product_id 1的日期介于20110101和20120101之间.
我该怎么做呢?看起来像一个简单的1到n的关系,但我无法弄清楚.
我正在尝试让我的SQL查询工作而且我失败了,所以我决定要求更多有经验和熟悉SQL人员,因为我不是这样.
我拥有:我的数据库中的2个表,一个是"DEV"表,其中包含:id, lat, lon, login, password
第二个是"TASK"表,其中包含:id, lat, lon, address, id_dev
.Id_dev是表"DEV"的外键.
我要做的是:进行查询以获取所有没有分配任务的DEV(在给定dev.id的表"task"中没有记录)并获得另一个具有任务的DEV列表.
我希望他们分开.我尝试了一些教程:
SELECT * FROM `dev` INNER JOIN 'task' ON dev.id=task.id_dev ORDER BY dev.id;
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用.有什么建议吗?亲切的问候!
join ×10
sql ×7
mysql ×4
database ×2
left-join ×2
select ×2
duplicates ×1
inner-join ×1
many-to-many ×1
performance ×1
rethinkdb ×1
shell ×1