Я хочу получить сумму каждой таблицы между двумя датами из нескольких групп таблиц по каждой дате. мой код выбирает только одну оценку, а не получает сумму всех оценок за каждую дату.
SELECT z.dates
COALESCE(a.allscore) AS cricket_score,
COALESCE(b.allscore) AS football_score
FROM (
SELECT dateby AS dates FROM cricket_table
UNION
SELECT dateby FROM football_table) AS z
LEFT JOIN (SELECT dateby AS dates, SUM(score) AS allscore FROM cricket_table
WHERE dateby BETWEEN '2020-01-01' AND '2020-03-03'
GROUP BY dates) a USING (dates)
LEFT JOIN (SELECT dateby AS dates, SUM(score) AS allscore FROM football_table
WHERE dateby BETWEEN '2020-01-01' AND '2020-03-03'
GROUP BY dates) b USING (dates)
GROUP BY z.dates
[полный код со структурой базы данных]
$sql = "
create table cricket_table (player varchar(50), score int, dateby date);
create table football_table (player varchar(50), score int, dateby date);
insert into cricket_table values
('Sohail',32, '2020-01-02'),
('Saleem',65, '2020-01-02'),
('Hamid',76, '2020-01-02'),
('Sohail',33, '2020-05-02'),
('Saleem',44, '2020-05-02'),
('Hamid',22, '2020-05-02');
insert into football_table values
('Sohail',1, '2020-01-02'),
('Saleem',2, '2020-01-02'),
('Hamid',3, '2020-01-02'),
('Sohail',6, '2020-05-02'),
('Saleem',7, '2020-05-02'),
('Hamid',8, '2020-05-02');
";
$result = $db->prepare($sql);
$result->execute();
$query = $db->prepare("SELECT z.dates
COALESCE(a.allscore) AS cricket_score,
COALESCE(b.allscore) AS football_score
FROM (
SELECT dateby AS dates FROM cricket_table
UNION
SELECT dateby FROM football_table) AS z
LEFT JOIN (SELECT dateby AS dates, SUM(score) AS allscore FROM cricket_table
WHERE dateby BETWEEN '2020-01-01' AND '2020-03-03'
GROUP BY dates) a USING (dates)
LEFT JOIN (SELECT dateby AS dates, SUM(score) AS allscore FROM football_table
WHERE dateby BETWEEN '2020-01-01' AND '2020-03-03'
GROUP BY dates) b USING (dates)
GROUP BY dates
");
$query->execute();
echo '<table><tr><th>Player Name</th><th>Cricket</th><th>Football</th></tr>';
while($row = $query->fetch(PDO:: FETCH_ASSOC) ) {
echo '<tr>
<td>'.$row['player'].'</td>
<td>'.$row['cricket_score'].'</td>
<td>'.$row['football_score'].'</td>
</tr>';
}
echo '</table>';
(https://pastebin.com/prvsd1X8 )