此主题已关闭。 我找到了一个使用子查询显示所需输出的答案。
选择 table_a.id, table_a.col作为col, (从table_b WHERE col1 = col AND col3 ='me'LIMIT 1中选择col2)作为table_b_col2, (从table_b WHERE col1 = col AND col3 ='me'LIMIT 1中选择col3)作为table_b_col3 从 table_a
我有两个表:
表A
ID || COL
1 | | A
2 | B
3 | C
4 | D
表B
ID1 || COL1 || COL2 COL3
1 |一种 | 60 ||我
2 |乙 | 45 ||我
现在我想获取这样的记录
预期结果:
ID1 || COL1 || COL2 COL3
1 |一种 | 60 ||我
2 |乙 | 45 ||我
3 | C | |
4 | d | |
我已经尝试使用左连接,但是它只为表b中的行提供值
测试表:
ID COL1 || COL2 COL3
1 |一种 | 60 ||我
2 |乙 | 45 ||我
关于如何实现此目标的任何想法,或者也许您可以共享您的代码..谢谢
答案 0 :(得分:1)
我猜您正在尝试从表B中离开表A的联接。如果您按上述方式离开联接,那么您将获得联接记录,该记录具有表B中的列值(COL1 A和B)。由于在表B 中没有 C,D 的 COL2 值,它将在问题中提供的测试表中返回该值。
您可以使用 LEFT JOIN 获得预期的结果。
SELECT a.col,b.COL1,b.COL2
FROM Table A a
LEFT JOIN table_B b ON a.ID = b.ID
答案 1 :(得分:1)
我希望您得到的结果是
ID | COL1 | COL2
1 | A | 60
2 | B | 45
3 | C |
4 | D |
为此,您将使用LEFT JOIN
select a.id, a.col, b.col2
from a left join
b
on a.id = b.id ;
对于您的实际结果,很难分辨出多余的“ b”来自何处。这是一个简单的方法:
select a.id, coalesce(b.col1, 'b'), b.col2
from a left join
b
on a.id = b.id ;
答案 2 :(得分:0)
使用左连接和大小写
select a.id,case when a.COL='A' then 'A' else 'B' end as col1
,b.col2 from
tablea a left join tableb b on a.id=b.id
答案 3 :(得分:0)
在您的情况下,您可以在列
function cellMove([i, j], index, array) {
if (initialBrush.cellIndex === index) {
// convert to screen coordinates (of the cell):
let [[x0, y0], [x1, y1]] = initialBrush.extent;
const localXScale = x[i];
const localYScale = y[j];
const newBrushCoords = [
[
localXScale(x0), localYScale(y0)
], [
localXScale(x1), localYScale(y1)
]
];
return newBrushCoords;
} else {
// return null;
}
}
和A.COL
上使用左联接。
B.COL1