数据库:如何从具有一个公共列的两个表中获取多个值
Posted
技术标签:
【中文标题】数据库:如何从具有一个公共列的两个表中获取多个值【英文标题】:Database: how to get multiple values from two tables having one common column 【发布时间】:2018-09-30 17:29:05 【问题描述】:我有两个两张表:
表 #1:列
Producer ConsumerKey time resourcepath Day
------------------------------------------------------------------
test 7890 2018-09-25 09:44 /12345 23
dev 5678 2018-09-25 09:10 /abcv 26
表 #2:列
ConsumerName ConsumerKey Day
-----------------------------------
admin 7890 23
dummy 5678 26
我需要以这样的方式查询表,以便从表 1 中获取不同的值,并从表 2 中获取特定日期的相应消费者名称
所以最终的结果应该是这样的:
Producer ConsumerKey time resourcepath ConsumerName Day
-------------------------------------------------------------------------------
test 7890 2018-09-25 09:44 /12345 admin 23
dev 5678 2018-09-25 09:10 /abcv dummy 26
有没有办法得到这个。请帮忙
谢谢
【问题讨论】:
【参考方案1】:基本连接应该可以工作。
SELECT t1.producer,
t1.consumerkey,
t1.time,
t1.resourcepath,
t2.consumername,
t1.day
FROM table1 t1
INNER JOIN table2 t2
ON t2.consumerkey = t1.consumerkey
AND t2.day = t1.day;
【讨论】:
感谢您的回复。 但是这怎么可能搜索给定的日期呢? 添加WHERE
子句,如WHERE t1.time = ...
。【参考方案2】:
SELECT DISTINCT table1.Producer, table1.ConsumerKey, table1.Time, table1.resourcepath, table1.day, table2.ConsumerName
FROM table1, table2
WHERE table1.ConsumerKey = table2.ConsumerKey
AND table1.time = "<ENTER YOUR TIME HERE>"
这可以很好地获取以下详细信息。
【讨论】:
以上是关于数据库:如何从具有一个公共列的两个表中获取多个值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Nhibernate 从连接两个具有所有 id 的表中选择只有一个不同列的多个列是 UNIQUEIDENTIFIER