2016-02-13 2 views
-2

Я новичок в MySQL и PHP. И у меня есть некоторые проблемы с попыткой получить значения данных из двух таблиц в одном запросе с помощью JOIN. То, что я хочу сделать, это запрос «user_builds» и SUM (сумма), где owner_id = 1 AND type = 1. Проблемы возникают сейчас, когда мне нужно захватить build_type из другой таблицы, называемой «builds».Попытка присоединиться к таблицам в MySQL

Я попытался решить это, как я упоминал с JOIN, но ближайший я пришел, чтобы получить количество строк, равное количеству строк user_id = 1. Что я хочу - это выбрать общий SUM «amount» (user_builds), где «type = 1» (builds) и «owner_id = 1» (user_builds).

Надеюсь, вы понимаете, что я пытаюсь сделать здесь, если не буду пытаться его более подробно разобрать. И также жаль, что не предоставил ни одного из запросов, которые я пробовал, но так как никто из них не работал, это кажется неуместным. Спасибо за ваше время.

Edit:

+-------------------+ 
| 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 | 
+---------+------------+-----------+--------+ 

Я хочу запросить "user_builds" и получить в общей сложности "суммы", где owner_id = 1 и тип = 1. (тип находится в таблице «build»).

+2

Можете ли вы поделиться структурой таблиц, некоторыми примерами данных и результатом, который вы ожидаете получить для этих данных образца? – Mureinik

+1

Ваше объяснение очень скучно, можете ли вы показать свои данные и требования. Это будет легко понять. –

+0

Отредактировано основное сообщение. – Naxor

ответ

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 
+0

Спасибо большое! Это то, что я был после! :) К сожалению, ppl downvoted меня, поэтому я не могу дать вам репутацию сейчас. Я ценю вашу помощь tho! – Naxor

+0

Нет проблем, вы можете узнать о объединениях из [w3schools sql joins] (http://www.w3schools.com/sql/sql_join.asp) и [инфографика на SO] (http://stackoverflow.com/a/ 23653569/4879022) – Spidey

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

попробовать этот запрос и заменить поле моего запроса с оригинальными полями

удачи ...

Смежные вопросы