我有一个表类别,具有 id 和 cat_name
示例:152, Plumbing
我有表 user ,具有 category_id 和名称
示例:152, John Doe
当我这样做
SELECT name, category_id FROM user
结果,我会得到类似的东西
John Doe, 152
问题: 如何运行我的SQL,以获得
之类的结果John Doe, plumbing
答案 0 :(得分:1)
这很容易得到,请在下面的查询中使用同样的方法
SELECT User.Name, Category.cat_name FROM User
INNER JOIN Category ON Category.Id = User.category_id
快乐编码:-)
答案 1 :(得分:0)
尝试基本的 JOINS
SELECT C.cat_name, U.Name
FROM category C JOIN User U ON C.id = U.category_id
答案 2 :(得分:0)
这将起作用:
select a.name,b.cat_name from user a, category b
where a.category_id=b.id
答案 3 :(得分:0)
如您所知,您有两个表,并且这些表(用户和类别)的记录之间存在一对一的关系。
所以在这里,我们将使用简单的联接来连接这两个表。
SELECT c.cat_name, u.name
FROM category as c, user as u
WHERE c.id = u.category_id
当我执行category as c
时,这称为别名。这有两个好处。一种是使我们的查询简短而甜美(无需重复category
,只需使用c
),第二种是SQL查询引擎对我们要选择的内容具有100%的清晰度。
让我们也要选择id
,那么您应该使用c.id
或u.category_id
。
答案 4 :(得分:0)
检查这些替代方法-
public static String calcExecutionTime(Instant startTime, Instant endTime) {
if ((Duration.between(startTime, endTime).toNanos()) < 1000000) {
return Duration.between(startTime, endTime).toNanos() + " nanoseconds.";
} else if ((Duration.between(startTime, endTime).toMillis()) < 1000) {
return Duration.between(startTime, endTime).toMillis() + " milliseconds.";
} else if ((Duration.between(startTime, endTime).toSeconds()) < 100) {
return Duration.between(startTime, endTime).toSeconds() + " seconds.";
} else if ((Duration.between(startTime, endTime).toMinutes()) < 60) {
return Duration.between(startTime, endTime).toMinutes() + " minutes.";
} else {
return Duration.between(startTime, endTime).toHours() + " hoursm.";
}
}