【发布时间】:2018-10-18 04:22:57
【问题描述】:
我想要完成的是从一个表中选择不同的值,并从另一个表中包含一个字段值(将从另一个表中选择)。
这是我的陈述的一个例子:
SELECT table1.Foo, <- ID
table1.Bar, <- some value
(SELECT table2.Baz from table2 <- another value I'd like to select from another table
WHERE table1.Foo = table2.Foo and table2.Qux = 'A') As value1
FROM table1
INNER JOIN table2 ON table1.Foo = table2.Foo
WHERE table1.Bar = '2'
value1 是一个独特的值,这一点非常重要。抛出的错误是(value1 的)子查询包含多个值。
我想请你帮忙!
编辑:这里是一些示例数据
表1
|---------------------|------------------|
| Foo | Bar |
|---------------------|------------------|
| 1 | ABC |
|---------------------|------------------|
| 2 | XYZ |
|---------------------|------------------|
表2
|---------------------|------------------|------------------|
| Foo | Baz | Qux |
|---------------------|------------------|------------------|
| 1 | 100 | A |
|---------------------|------------------|------------------|
| 1 | 200 | B |
|---------------------|------------------|------------------|
| 2 | 150 | A |
|---------------------|------------------|------------------|
| 2 | 175 | B |
|---------------------|------------------|------------------|
结果
|---------------------|------------------|------------------|
| Foo | Bar | value1 |
|---------------------|------------------|------------------|
| 1 | ABC | 100 |
|---------------------|------------------|------------------|
| 2 | XYZ | 150 |
|---------------------|------------------|------------------|
您好, 框架
【问题讨论】:
-
添加一些示例表数据和预期结果。 (作为格式化文本,而不是图像。)
-
那么如果该子查询将返回多条记录,那么您选择单个值的逻辑是什么?
-
您是说“我有一个返回多个值的查询,如何让它只返回一个值?”好吧,你需要指定如何操作的逻辑;你想要
MIN()、MAX()、AVERAGE()、按时间戳列排序的第一个值,还是其他一些逻辑?最好的建议是举一个完全可论证的例子;带有您想要的结果的示例数据,表达您想要应用的规则。阅读以下内容可能会对您有所帮助:stackoverflow.com/help/mcve
标签: sql join subquery inner-join