A表中一列存放的结果是B表中C字段加D字段的公式,我如何取A表中该列作为B表的查询条件
时间: 2024-02-23 07:59:38 浏览: 78
SQL根据字段值查找表及字段
4星 · 用户满意度95%
在 MySQL 中,你可以使用子查询来将一个查询的结果作为另一个查询的条件。具体来说,你可以将第一个查询作为子查询,然后在第二个查询中引用该子查询的结果。
例如,假设你有两个表 `tableA` 和 `tableB`,它们的结构如下:
```
tableA
+----+--------+
| id | formula|
+----+--------+
| 1 | C+D |
| 2 | 2*C+D |
| 3 | C+5*D|
+----+--------+
tableB
+----+----+----+
| id | C | D |
+----+----+----+
| 1 | 10 | 20 |
| 2 | 20 | 30 |
| 3 | 30 | 40 |
+----+----+----+
```
现在,你想要查询 `tableB` 表中符合 `C+D` 等于 `tableA` 表中相应行的 `formula` 的行。你可以使用如下 SQL 语句:
```
SELECT * FROM tableB WHERE CONCAT(C, '+', D) IN (SELECT formula FROM tableA);
```
在这个 SQL 语句中,我们首先使用子查询 `(SELECT formula FROM tableA)` 查询 `tableA` 表中所有的 `formula` 值。然后,使用 `CONCAT()` 函数将 `C` 和 `D` 字段的值以 `+` 号拼接成一个字符串,再使用 `IN` 运算符将这个字符串与子查询的结果进行比较,以判断是否符合条件。
这样,我们就可以将第一个查询的结果作为第二个查询的条件了。在实际应用中,你可以根据具体需求进行调整。
阅读全文