我有两个表,我想要一个结果:如果 CID 和 CID2 相等,则打印 cpu 关于 CID2 的值
first table A :
+------+---------------------+--------------------+-----------------+
| CID | time | step | time_in_seconde |
+------+---------------------+--------------------+-----------------+
| 1 | 2017-07-27 06:26:50 | gege | 10.229 |
| 2 | 2017-07-27 06:26:58 | rere | 10.239 |
| 3 | 2017-07-27 06:35:52 | gege | 13.229 |
| 4 | 2017-07-27 06:36:56 | titi | 12.823 |
| 5 | 2017-07-27 06:55:04 | fefe | 12.667 |
second table B :
+------+---------------------+-----------------+
| CID2 | time | cpu |
+------+---------------------+-----------------+
| 3 | 2017-07-27 06:35:52 | 0.01 |
| 4 | 2017-07-27 06:36:56 | 0.05 |
| 5 | 2017-07-27 06:55:04 | 0.03 |
结果:
+------+---------------------+-----------------+
| CID2 | time | cpu |
+------+---------------------+-----------------+
| 1 | 2017-07-27 06:26:50 | |
| 2 | 2017-07-27 06:26:58 | |
| 3 | 2017-07-27 06:35:52 | 0.01 |
| 4 | 2017-07-27 06:36:56 | 0.05 |
| 5 | 2017-07-27 06:55:04 | 0.03 |
我的 sql 请求不起作用:
select A.cid, A.time, C.cpu from A INNER JOIN B on A.cid = B.CID2 where A.time ="2018-12-17 14:00:00";
我使用mariadb,我需要条件时间= 2017-07-27 06:55:04,因为我有数百万行
你有什么想法吗,谢谢你的信息
最佳答案
您可以通过左连接来完成此操作,例如
select
ta.CID, ta.time,tb.cpu
from
TableA ta
left join
TableB tb on ta.CID=tb.CID2
如果您想避免 cpu
为空,请将其转换为其他值,例如0 与 ISNULL(cpu,0)
在这里查看 w3schools 上的不同加入类型:https://www.w3schools.com/sql/sql_join_left.asp
关于mysql - sql - 选择包含 2 个表的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54537958/