我在两个表上执行SELECT,选择取决于表格'主要ID,所以我希望每个查询最多1个结果。我想将查询合并到一个SELECT语句中。我认为我应该使用RIGHT(或者左边)OUTER JOIN这样做,但这对我来说并不适合。有什么建议吗?
Table A Table B
--------- ----------
ID (pk) | AAttr ID (pk) | BAttr
SELECT AAttr, BAttr
FROM A
RIGHT OUTER JOIN B
ON B.ID = 1
WHERE A.ID = 1
*编辑包含样本案例
例如,如果表格包含第一组数据并查询ID为1
,我希望:
[null, 'b']
对于第二组数据并查询ID 1
,我期待:
['a', null]
对于第三组数据并查询ID 1
,我希望:
['a', 'b']
Table A Table B
-------- --------
2 | a 1 | b
3 | c 4 | d
Table A Table B
-------- --------
1 | a 2 | b
3 | c 4 | d
Table A Table B
-------- --------
1 | a 1 | b
3 | c 4 | d
答案 0 :(得分:1)
当您加入表格时,您需要通过公共列将它们相互关联。在这种情况下,ID。
SELECT a.AAttr, b.BAttr
FROM a
LEFT JOIN b
ON a.ID = b.ID
WHERE a.ID = 1;
答案 1 :(得分:1)
如果每个表中的ID不相关,并且您想要组合两个不相关的select语句,请尝试使用
select
(SELECT top 1 AAttr FROM A where ID = 1) as AAttr,
(SELECT top 1 BAttr FROM B where ID = 1) as BAttr