$query = $this->db->query("SELECT t1.numberofbets, t1.profit, t2.seven_profit, t3.28profit, user.user_id, username, password, email, balance, user.date_added, activation_code, activated FROM user LEFT JOIN (SELECT user_id, SUM(amount_won) AS profit, count(tip_id) AS numberofbets FROM tip GROUP BY user_id) as t1 ON user.user_id = t1.user_id LEFT JOIN (SELECT user_id, SUM(amount_won) AS seven_profit FROM tip WHERE date_settled > '$seven_daystime' GROUP BY user_id) as t2 ON user.user_id = t2.user_id LEFT JOIN (SELECT user_id, SUM(amount_won) AS 28profit FROM tip WHERE date_settled > '$twoeight_daystime' GROUP BY user_id) as t3 ON user.user_id = t3.user_id where activated = 1 GROUP BY user.user_id ORDER BY user.date_added DESC");
return $query->result_array();
Sorgu phpMyAdmin içinde çalışan çalışıyor ve (resimde ekli) tam sonuç verir. Ancak, CodeIgniter'daki dizi baskı, bu bir alan için hiçbir değeri yoktur, bu SQL sorgusunda olduğu seven_profit, 'Ben sadece can ... sql php dizi için, bu alanda, phpMyAdmin sadece tutarsızlık koştu 26 değeri olmalıdır dizi, bu bir alan, yazdırırken neden, hiçbir şey içerir Göremiyorum? Herhangi bir fikir? Ben bunu düzeltmek için girişimde bir sayı ile başlayan alan adını değiştirdi, ama hiçbir fark.
Bu, hakkında bilmek herhangi bir yardım ya da sadece insanların benzer bir şey genelinde geliyor harika olurdu, teşekkürler karmaşık ve korkunç göründüğünü biliyorum.
Sam
edit: sorgu biraz daha biçimlendirilmiş:
$query = $this->db->query("
SELECT
t1.numberofbets, t1.profit, t2.seven_profit, t3.28profit,
user.user_id, username, password, email,
balance, user.date_added, activation_code, activated
FROM
user
LEFT JOIN
(
SELECT
user_id,
SUM(amount_won) AS profit,
count(tip_id) AS numberofbets
FROM
tip
GROUP BY
user_id
) as t1
ON
user.user_id = t1.user_id
LEFT JOIN
(
SELECT
user_id,
SUM(amount_won) AS seven_profit
FROM
tip
WHERE
date_settled > '$seven_daystime'
GROUP BY
user_id
) as t2
ON
user.user_id = t2.user_id
LEFT JOIN
(
SELECT
user_id,
SUM(amount_won) AS 28profit
FROM
tip
WHERE
date_settled > '$twoeight_daystime'
GROUP BY
user_id
) as t3
ON
user.user_id = t3.user_id
WHERE
activated = 1
GROUP BY
user.user_id
ORDER BY
user.date_added DESC
");