[英]SQL: SELECT if entry in one column corresponds to another column of a different table
我的數據庫中有兩個表。 第一個, [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 |
我只想 select 來自[nodes]的那些節點和數據,它們在[nodeActivity]表中有相應的條目。
例如,在上述情況下,我想排除node3
和data7
,因為[nodeActivity]中不存在 node3 。 如何以最有效的方式完成上述任務?
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'
這應該工作
SELECT DISTINCT n.* FROM [nodes] AS n
INNER JOIN [nodeActivity] AS na
ON n.node_name = na.node_name
希望這可以幫助。
請參閱對 select unquie 行的新查詢。
select * from nodes where node_name in (select node_name from nodeActivity)
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.