标签: join

结合MySQL JOIN结果中的主键

我有一个返回结果的查询:

Table Units  Table Payments
ID          |  Payment
1003        |  300.00
1003        |  100.00
1004        |  350.00
1005        |  200.00
Run Code Online (Sandbox Code Playgroud)

如何构造查询,使其组合相同的ID,如下所示:

ID      |  Payment
1003    |  400.00
1004    |  350.00
1005    |  200.00
Run Code Online (Sandbox Code Playgroud)

我的查询如下:

SELECT u.id, p.amt FROM units u JOIN payments p ON u.id = p.unit
Run Code Online (Sandbox Code Playgroud)

我已尝试过SUM()amt字段,但它只返回一个结果:

ID      |  Payment
1003    |  950.00
Run Code Online (Sandbox Code Playgroud)

mysql sql join

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

如果字段不为null,则为MYSQL JOIN

我希望通过读取一个整表来从数据库中获取数据,再连接另一个,但只有当第一个中的指定字段不为NULL时才连接另一个.这是查询:

SELECT a.*, u1.Name, u2.Name FROM `articles` a
JOIN `users` u1 ON (a.id=1 AND u1.`id` = a.`authorid` )
JOIN `users` u2 ON (a.`updaterid` IS NOT NULL AND u2.`id` = a.`updaterid`) 
Run Code Online (Sandbox Code Playgroud)

应该工作正常,但事实并非如此.如果updaterid不是NULL,它返回有效的结果,但如果是,则继续得到空结果.关于这个的任何想法?

PS我也尝试了一些这样的组合,例如WHERE或不同种类的JOIN.

mysql database join

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

两个选择查询,计数到一个查询

我有两个查询数据的查询:

SELECT x.Id, COUNT( DISTINCT y.Id )
FROM X x
INNER JOIN Y y ON x.Id = y.otherId


SELECT x.Id, COUNT( DISTINCT z.Id )
FROM X x
INNER JOIN Z z ON x.Id = z.otherId
Run Code Online (Sandbox Code Playgroud)

执行分隔时,两个查询都返回正确的值.

但我想将这些查询组合到一个查询中:

SELECT x.Id, COUNT( DISTINCT y.Id ), COUNT( DISTINCT z.Id )
FROM X x
INNER JOIN Y y ON x.Id = y.otherId
INNER JOIN Z z ON x.Id = z.otherId 
Run Code Online (Sandbox Code Playgroud)

当我这样做时,与单独执行的查询相比,这两个计数都是错误的.

为什么会这样,我真的很困惑.解决方案可能很简单,但我现在真的没有任何线索.

mysql sql select join

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

左连接不列出多行

我有问题列出两个表中的多行.我做了研究,但没有找到符合我需求的解决方案. LEFT JOIN的多次使用仅带来一行,这与我的问题类似.SQL查询如何从多个表中返回数据也没有帮助我:)

这就是我拥有的和我想要的.例如,我有两张桌子; 产品和数量.

product -> id - name
amount  -> id - pid - color - amount

product -> 1  - Book
           2  - Door
           3  - Table
amount  -> 1  - 1 - red - 5
           2  - 1 - blue- 10
           3  - 3 - green - 3
Run Code Online (Sandbox Code Playgroud)

这是我运行的查询没有问题:

SELECT product.id AS pid, 
product.name AS pname, 
sum(amount.amount) AS amnt 
FROM product 
LEFT JOIN amount ON product.id=amount.pid 
WHERE product.id='1'
Run Code Online (Sandbox Code Playgroud)

这是查询我遇到的问题:

SELECT product.id AS pid, …
Run Code Online (Sandbox Code Playgroud)

mysql sql join left-join

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

MYSQL计数,在简单情况下,LEFT OUTER JOIN的计数为0

考虑以下两个示例表

表1:“用户”

ID    REGISTER_TIME    FIRSTNAME    LASTNAME    OPERATION_ID

1     1401789877       John         Doe         29
2     1401789879       Jack         Doe         29
3     1401789878       Pete         Doe         29
Run Code Online (Sandbox Code Playgroud)

(请注意,register_time列存储为INT(11))

表2:“ calendar_days”

ID    DAY
1     2011-01-01
...   ....
n     2030-31-12
Run Code Online (Sandbox Code Playgroud)

我有以下运行良好的MySQL查询:

SELECT d.day, COUNT(d.day)
FROM calendar_days AS d
LEFT OUTER JOIN users AS l ON DATE(FROM_UNIXTIME(l.`register_time`)) = d.day
WHERE l.`operation_id` = 29
GROUP BY d.day;
Run Code Online (Sandbox Code Playgroud)

但这并不能保留count等于零的日子:

day;COUNT(d.day)

2014-05-07;1
2014-05-09;1
2014-05-12;11
2014-05-13;2713
2014-05-14;2631
Run Code Online (Sandbox Code Playgroud)

我想要的是 :

2014-05-07;1
**2014-05-08;0**
2014-05-09;1
2014-05-12;11
2014-05-13;2713
2014-05-14;2631
Run Code Online (Sandbox Code Playgroud)

我觉得我离真相很近,我已经尝试过任何可能的左外连接,右外连接,但仍然没有空结果。

mysql join count outer-join zero

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

在特定属性上比较两个具有LINQ的对象列表

我有这两个列表(其中价值SelectListItem是bookingid):

List<SelectListItem> selectedbookings;
List<Booking> availableBookings;
Run Code Online (Sandbox Code Playgroud)

我需要找到IDS从selectedBookings不在availableBookings.下面的LINQ加入只会让我得到预订,availableBookings我不知道如何做到这一点.

!= 因为我在比较字符串,所以不会起作用.

results = (
  from s in selectedbookings
  join a in availableBookings on s.bookingID.ToString() equals a.Value
  select s);
Run Code Online (Sandbox Code Playgroud)

c# linq join

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

合并R中的两个列表(多对多关系)

我正在尝试在R中合并2个列表。该列表的名称应用于执行连接。这是一个玩具示例:

> list1 <- list(A=c(1,2,3), B=c(2,4,5,6), C=c(1,3))
> list2 <- list(A=c(w,x), B=c(y,z))
Run Code Online (Sandbox Code Playgroud)

最终的合并列表应如下所示:

$w
[1] 1 2 3
$x
[1] 1 2 3
$y
[1] 2 4 5 6
$z
[1] 2 4 5 6
Run Code Online (Sandbox Code Playgroud)

到目前为止,我唯一的想法是将列表转换为数据帧,并使用合并功能。还有什么更简单的事情吗?

非常感谢你的帮助。

merge join r list

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

UNION SELECT不显示所有列

我有几个VIEWs嵌套到一个更大的VIEW用作报告.

CREATE VIEW view1 AS
    SELECT table1.col1 AS t1c1, table1.col2 AS t1c2
    FROM table1
    WHERE table1.col1 = 0
;

SAMPLE OUTPUT:

SELECT * FROM view1;
+-------------------+
|  t1c1  |   t1c2   |
+--------+----------+
|    0   |  t1stuff |
+--------+----------+
|    0   | t1stuff2 |
+--------+----------+
Run Code Online (Sandbox Code Playgroud)

.

CREATE VIEW view2 AS
    SELECT table2.col1 AS t2c1, table2.col2 AS t2c2
    FROM table2
    WHERE table2.col1 = 5
;

SAMPLE OUTPUT:

SELECT * FROM view2;
+-------------------+
|  t2c1  |   t2c2   |
+--------+----------+ …
Run Code Online (Sandbox Code Playgroud)

mysql sql union join view

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

查询帮助使用COUNT和JOIN需要

我正在寻找帮助编写MYSQL查询.我有两个表,一个叫做用户,另一个叫做切换.users表具有以下结构:

uid
first_name
last_name
Run Code Online (Sandbox Code Playgroud)

和切换表:

uid (references user table)
switch_number
reg_date
Run Code Online (Sandbox Code Playgroud)

切换表有多个uid值,我希望生成一个包含以下输出的表:

uid | switches
Run Code Online (Sandbox Code Playgroud)

其中switch指的是切换表中出现的次数.有人可以指导我如何使用MySQL和PHP做到这一点.我感谢任何帮助.

问候,

php mysql sql join count

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

SQL join和count do net将它组合在一起

我是SQL的初学者,同时在加入和计数方面遇到了一些麻烦.首先让我解释一下我的两张桌子.我有以下内容:

   Table: AnalysePageview
          id       title     session      more
        -----------------------------------------------------
           1         a           10        0
           2         b           20        1
           3         c           30        1            
           4         d           40        1
           5         e           50        1
           6         f           60        0

    Table: AnalyseEvent
          id       name     session      more
        -----------------------------------------------------
           1         a           10        0
           2         b           10        1
           3         c           10        1            
           4         d           20        1
Run Code Online (Sandbox Code Playgroud)

我想加入这两个并添加这样一行:

    New Table:
          id       name       session   counts (out off AnalyseEvent)
        -----------------------------------------------------
           1         a           10        3
           2         b           20        1
           3         c           30        0            
           4         d …
Run Code Online (Sandbox Code Playgroud)

mysql sql join

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

标签 统计

join ×10

mysql ×8

sql ×6

count ×2

c# ×1

database ×1

left-join ×1

linq ×1

list ×1

merge ×1

outer-join ×1

php ×1

r ×1

select ×1

union ×1

view ×1

zero ×1