Эта часть:
AND b.tx_type = 4
AND b.tx_type = 14
гарантирует, что в результате вы получите ноль строк.
Если вы хотите иметь punters
с транскрипциями обоих типов 4
и 14
, вам нужно JOIN
дважды до таблицы b
:
SELECT a.username, a.first_name, a.last_name
, b1.tx_time AS tx_time_1
, b2.tx_time AS tx_time_2
, a.id
, b1.table_id AS table_id_1, b1.tx_type AS tx_type_1, b1.amount AS amount_1
, b2.table_id AS table_id_2, b2.tx_type AS tx_type_2, b2.amount AS amount_2
FROM punter a
JOIN account_transaction b1
ON b1.account_id = a.id
JOIN account_transaction b2
ON b2.account_id = a.id
WHERE b1.tx_time >= '2011-07-01'
AND b1.tx_time < '2011-09-30'
AND b1.tx_type = 4
AND b2.tx_time >= '2011-07-01'
AND b2.tx_time < '2011-09-30'
AND b2.tx_type = 14