试图在MySQL中连接表

时间:2016-02-13 10:36:20

标签: php mysql

我是MySQL和PHP的新手。我尝试使用JOIN从一个查询中的两个表中获取数据值时遇到一些问题。我想做的是查询" user_builds"和SUM(amount)其中owner_id = 1 AND type = 1。现在出现的问题是我必须从另一个名为" builds"的表中获取build_type。

我试图像我在JOIN中提到的那样解决这个问题,但我最接近的是得到的行数等于user_id = 1的行数。 我想要的是选择&#34;总数&#34;(user_builds),其中&#34; type = 1&#34;(构建)和&#34; owner_id = 1&#34;(user_builds)。< / p>

我希望你明白我在这里尝试做什么,如果不是,我会尝试详细说明。并且抱歉没有提供我尝试的任何查询,但因为没有一个工作它感觉无关紧要。谢谢你的时间。

编辑:

+-------------------+
| user_builds       |
+---------+---------+----------+-------+
| id      |owner_id | build_id | amount|
+---------+---------+----------+-------+
| 1       |    1    |    1     |   5   |
| 2       |    2    |    2     |  15   |
| 3       |    2    |    3     |  15   |
| 4       |    1    |    4     |   5   |
| 5       |    1    |    5     |   5   |
| 6       |    1    |    6     |  10   |
+---------+---------+----------+-------+

+----------------------+
| build                |
+---------+------------+-----------+--------+
| id      | name       |description| type   |
+---------+------------+-----------+--------+
|    1    | House      | desc      |    1   |
|    2    | Kitchen    | desc      |    2   |
+---------+------------+-----------+--------+

我想查询&#34; user_builds&#34;得到&#34;金额&#34; owner_id = 1且type = 1。 (类型可在&#34; build&#34;表中找到。)

2 个答案:

答案 0 :(得分:1)

试试这段代码,我希望它能正常运作。

select sum(ub.amount)
  from user_builds ub
  left join build b 
    on ub.build_id = b.id
 where b.type=1 
   and ub.owner_id = 1

答案 1 :(得分:0)

select SUM(amount) from user_builds left join builds on build.type = user_builds.type where "owner_id=1"

尝试此查询并将我的查询字段替换为原始字段

祝你好运......