使用子查询在单个 table 中查看两个 table 的不同列

viewing different columns of two tables in a single table using subqueries

我有两个 tables T1 和 T2 - T1-列(c1,c2) T2-列(c2,c4) c2是T1的主键,也是T2的外键。我想 return 包含 T1.c1T2.c4 的记录,其中 T2.c4= 'some value' 使用子查询。所以,我写了一个子查询 - SELECT c1 FROM T1 WHERE c2=(SELECT c2 FROM T2 WHERE c4 = 'some value') 有没有办法在带有子查询的单个 table 中查看这两列(T1.c1、T2.c4)?

你想要的结果中c4的值为'some value'(如果存在的话):

SELECT c1, 'some value' c4 
FROM T1 
WHERE c2 = (SELECT c2 FROM T2 WHERE c4 = 'some value')

这仅在子查询时有效:

SELECT c2 FROM T2 WHERE c4 = 'some value'

returns只有1行。

但是这个需求可以通过连接更好地解决:

SELECT T1.c1, T2.c4 
FROM T1 INNER JOIN T2
ON T2.c2 = T1.c1
WHERE T2.c4 = 'some value';