我有一个返回结果的查询:
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) 我希望通过读取一个整表来从数据库中获取数据,再连接另一个,但只有当第一个中的指定字段不为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.
我有两个查询数据的查询:
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)
当我这样做时,与单独执行的查询相比,这两个计数都是错误的.
为什么会这样,我真的很困惑.解决方案可能很简单,但我现在真的没有任何线索.
我有问题列出两个表中的多行.我做了研究,但没有找到符合我需求的解决方案. 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) 考虑以下两个示例表
表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)
我觉得我离真相很近,我已经尝试过任何可能的左外连接,右外连接,但仍然没有空结果。
我有这两个列表(其中价值在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) 我正在尝试在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)
到目前为止,我唯一的想法是将列表转换为数据帧,并使用合并功能。还有什么更简单的事情吗?
非常感谢你的帮助。
我有几个VIEW
s嵌套到一个更大的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查询.我有两个表,一个叫做用户,另一个叫做切换.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做到这一点.我感谢任何帮助.
问候,
我是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)