使用子查询在单个 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.c1
和 T2.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';
我有两个 tables T1 和 T2 -
T1-列(c1,c2)
T2-列(c2,c4)
c2是T1的主键,也是T2的外键。我想 return 包含 T1.c1
和 T2.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';