如何在mysql中的子查询中选择多个列

时间:2014-05-12 12:41:47

标签: mysql

我想定义这样的查询:

select sum(column) from table1 where id in(select column1, column2 from table2);

我该怎么做?

更新::

table1(id | base_p_id | additional_p_id)

     1|    2    | 4

     2|    2    | 3

table2(id | desc | cost)

   2  |   -     |1200

   4  |  -      |400

现在base_p_id& additional_p_id是table2的fk,我想取成本之和

喜欢

从table2中选择sum(cost),其中id为(select base_p_id,additional_p_id)from table1,其中id = 1);

-Thanks。

2 个答案:

答案 0 :(得分:1)

你可以使用UNION:

SELECT
    sum(column)
FROM
    table1
WHERE
    id IN (SELECT col1 FROM table2 UNION SELECT col2 FROM table 2)

答案 1 :(得分:1)

您可以通过加入执行此操作。这也比使用IN子查询要快得多:

select sum(table1.column) 
from table1 
inner join table2 on table2.column1 = table1.id or table2.column2 = table1.id