sql - выберите один столбец с 2 таблицами - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть две таблицы, и я хочу получить результат: если 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   |

result:

+------+---------------------+-----------------+
| 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   |

my sql request don 't работа:

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 и мне нужно с условием time = 2017-07-27 06:55:04, потому что у меня есть строка миллионов

у вас есть идеи,спасибо за любую информацию

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Вы можете сделать это с помощью левого соединения, например,

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

0 голосов
/ 05 февраля 2019

Вам нужен запрос с левым соединением, как показано ниже:

select t1.CID, t1.time, t2.CPU
from table1 t1
left outer join table2 t2 on t2.CID2 = t1.CID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...