我的数据库中有两个表。第一个 [nodeActivity] 包含以下两列(主键= node_name )
node_name | last_updated |
| |
node 1 | 00:00:00 |
node 2 | 00:00:01 |
第二个名为 [nodes] 的表格包含以下列(无主键)
node_name | data | time |
| | |
node 1 | data1 | 00:00:01 |
node 2 | data2 | 00:00:01 |
node 1 | data3 | 00:00:02 |
node 2 | data5 | 00:00:02 |
node 1 | data6 | 00:00:03 |
node 3 | data7 | 00:00:03 |
我想只从 [nodes] 中选择那些节点和数据,这些节点和数据在 [nodeActivity] 表中有相应的条目。
例如,在上述情况下,我想要排除node3
和data7
,因为 [nodeActivity] 中不存在node3。
如何才能以最有效的方式完成上述工作?
答案 0 :(得分:4)
SELECT DISTINCT n.node_name, n.data
FROM nodes n
INNER JOIN nodeActivity na
ON n.node_name = na.node_name
AND na.time = '00:00:00'
答案 1 :(得分:1)
这应该有效
SELECT DISTINCT n.* FROM [nodes] AS n
INNER JOIN [nodeActivity] AS na
ON n.node_name = na.node_name
希望这有帮助。
请参阅新查询以选择unquie行。
答案 2 :(得分:1)
select * from nodes where node_name in (select node_name from nodeActivity)
答案 3 :(得分:0)
SELECT n.node_name, n.last_updated, na.data, na.time
FROM [nodes] n
INNER JOIN [nodeActivity] na ON n.node_name = na.node_name