SELECT t1.id,
(SELECT CONCAT (MONTHNAME(t1.date),’ ‘,YEAR(t1.date),’.’)) AS date,
(SELECT CONCAT(t2.name,’ ‘, t2.surname) FROM tc_players AS t2 WHERE t2.id = t1.player_id AND t3.id = 1) AS round_robin,
(SELECT CONCAT(t2.name,’ ‘, t2.surname) FROM tc_players AS t2 WHERE t2.id = t1.player_id AND t3.id = 2) AS masters,
(SELECT CONCAT(t2.name,’ ', t2.surname) FROM tc_players AS t2 WHERE t2.id = t1.player_id AND t3.id = 3) AS utjesni_turnir
FROM tc_halloffame AS t1
JOIN tc_players AS t2 ON t2.id = t1.player_id
JOIN tc_halloffame_title AS t3 ON t3.id = t1.hof_id
ORDER BY t1.date DESC
Dakle, moj cilj je spojiti 2 reda ako im je isti mjesec i godina. Probala sam i DISTINCT i GROUP BY no dobivam samo jedan rezultat.
Npr. listopad 2016., ako ga osoba1 i osoba2 imaju da ih spoji pod taj datum, a ne da budu svatko u svom redu. Kako to mogu izvesti?
ovo što sam napisala gore zapravo je view… a ovo je tablica na kojoj se temelji
CREATE TABLE IF NOT EXISTS tc_halloffame ( id int(11) NOT NULL AUTO_INCREMENT, date DATE NOT NULL, player_id int(11) NOT NULL, hof_id int(11) NOT NULL,
FOREIGN KEY (player_id) REFERENCES tc_players (id),
FOREIGN KEY (hof_id) REFERENCES tc_halloffame_title (id),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
Nisi napisala strukturu tablice tc_halloffame_title i daj napiši primjer par zapisa u svakoj tablici.
Bez strukture tablica i primjera zapisa slogova se ne mogu rješavati ovakvi problemi.
CREATE TABLE IF NOT EXISTS tc_halloffame_title ( id int(11) NOT NULL AUTO_INCREMENT, hof_title varchar(100) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
primjer zapisa je ono iz tablice prije… nemam dio sa INSERTOM…
samo datumi imena treba upisati…
a ovaj tablica title… je Round robin, Masters, Utješni turnir…
SELECT
CONCAT (MONTHNAME(hof.date),' ',YEAR(hof.date),'.') AS datum,
(SELECT CONCAT(p1.name,' ', p1.surname) FROM tc_halloffame AS hof1, tc_players AS p1 WHERE hof1.id = t1.player_id AND hof1.id = 1 AND CONCAT (MONTHNAME(hof1.date),' ',YEAR(hof1.date),'.')) = CONCAT (MONTHNAME(hof.date),' ',YEAR(hof.date),'.'))) AS round_robin,
(SELECT CONCAT(p2.name,' ', p2.surname) FROM tc_halloffame AS hof2, tc_players AS p2 WHERE hof2.id = t2.player_id AND hof2.id = 2 AND CONCAT (MONTHNAME(hof2.date),' ',YEAR(hof2.date),'.')) = CONCAT (MONTHNAME(hof.date),' ',YEAR(hof.date),'.'))) AS masters,
(SELECT CONCAT(p3.name,' ', p3.surname) FROM tc_halloffame AS hof3, tc_players AS p3 WHERE hof3.id = t3.player_id AND hof3.id = 3 AND CONCAT (MONTHNAME(hof3.date),' ',YEAR(hof3.date),'.')) = CONCAT (MONTHNAME(hof.date),' ',YEAR(hof.date),'.'))) AS utjesni_turnir
FROM tc_halloffame AS hof
GROUP BY CONCAT (MONTHNAME(hof.date),' ',YEAR(hof.date),'.')
ORDER BY 1 DESC
Pokušala sam… javlja ovu grešku: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘)) AS round_robin, (SELECT CONCAT(p2.name,’ ', p2.surname) FROM tc_halloffame ’ at line 3
pokušavam skužiti što ne valja i nikako da skužim… jel možda ti vidiš?
SELECT
CONCAT (MONTHNAME(t1.date),’ ‘,YEAR(t1.date),’.’) AS datum,
(SELECT CONCAT(p1.name,’ ‘, p1.surname) FROM tc_halloffame AS hof1, tc_players AS p1 WHERE hof1.id = t1.player_id AND hof1.id = 1 AND CONCAT (MONTHNAME(hof1.date),’ ‘,YEAR(hof1.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS round_robin,
(SELECT CONCAT(p2.name,’ ‘, p2.surname) FROM tc_halloffame AS hof2, tc_players AS p2 WHERE hof2.id = t2.player_id AND hof2.id = 2 AND CONCAT (MONTHNAME(hof2.date),’ ‘,YEAR(hof2.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS masters,
(SELECT CONCAT(p3.name,’ ‘, p3.surname) FROM tc_halloffame AS hof3, tc_players AS p3 WHERE hof3.id = t3.player_id AND hof3.id = 3 AND CONCAT (MONTHNAME(hof3.date),’ ‘,YEAR(hof3.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS utjesni_turnir
FROM tc_halloffame AS hof
GROUP BY CONCAT (MONTHNAME(t1.date),’ ‘,YEAR(t1.date),’.’)
ORDER BY 1 DESC
SELECT
CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’) AS datum,
(SELECT CONCAT(p1.name,’ ‘, p1.surname) FROM tc_halloffame AS hof1, tc_players AS p1 WHERE hof1.id = t1.player_id AND hof1.id = 1 AND CONCAT (MONTHNAME(hof1.date),’ ‘,YEAR(hof1.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS round_robin,
(SELECT CONCAT(p2.name,’ ‘, p2.surname) FROM tc_halloffame AS hof2, tc_players AS p2 WHERE hof2.id = t2.player_id AND hof2.id = 2 AND CONCAT (MONTHNAME(hof2.date),’ ‘,YEAR(hof2.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS masters,
(SELECT CONCAT(p3.name,’ ‘, p3.surname) FROM tc_halloffame AS hof3, tc_players AS p3 WHERE hof3.id = t3.player_id AND hof3.id = 3 AND CONCAT (MONTHNAME(hof3.date),’ ‘,YEAR(hof3.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS utjesni_turnir
FROM tc_halloffame AS hof
GROUP BY CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)
ORDER BY 1 DESC
SELECT
CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’) AS datum,
(SELECT CONCAT(p1.name,’ ‘, p1.surname) FROM tc_halloffame AS hof1, tc_players AS p1 WHERE hof1.id = p1.player_id AND hof1.id = 1 AND CONCAT (MONTHNAME(hof1.date),’ ‘,YEAR(hof1.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS round_robin,
(SELECT CONCAT(p2.name,’ ‘, p2.surname) FROM tc_halloffame AS hof2, tc_players AS p2 WHERE hof2.id = p2.player_id AND hof2.id = 2 AND CONCAT (MONTHNAME(hof2.date),’ ‘,YEAR(hof2.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS masters,
(SELECT CONCAT(p3.name,’ ‘, p3.surname) FROM tc_halloffame AS hof3, tc_players AS p3 WHERE hof3.id = p3.player_id AND hof3.id = 3 AND CONCAT (MONTHNAME(hof3.date),’ ‘,YEAR(hof3.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS utjesni_turnir
FROM tc_halloffame AS hof
GROUP BY CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)
ORDER BY 1 DESC
Točno, napravio sam grešku, zamjenio sam tablice.
Ako nisi izgubila nadu, probaj ovo
SELECT
CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’) AS datum,
(SELECT CONCAT(p1.name,’ ‘, p1.surname) FROM tc_halloffame AS hof1, tc_players AS p1 WHERE hof1.player_id = p1.id AND hof1.hof_id = 1 AND CONCAT (MONTHNAME(hof1.date),’ ‘,YEAR(hof1.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS round_robin,
(SELECT CONCAT(p2.name,’ ‘, p2.surname) FROM tc_halloffame AS hof2, tc_players AS p2 WHERE hof2.player_id = p2.id AND hof2.hof_id = 2 AND CONCAT (MONTHNAME(hof2.date),’ ‘,YEAR(hof2.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS masters,
(SELECT CONCAT(p3.name,’ ‘, p3.surname) FROM tc_halloffame AS hof3, tc_players AS p3 WHERE hof3.player_id = p3.id AND hof3.hof_id = 3 AND CONCAT (MONTHNAME(hof3.date),’ ‘,YEAR(hof3.date),’.’) = CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)) AS utjesni_turnir
FROM tc_halloffame AS hof
GROUP BY CONCAT (MONTHNAME(hof.date),’ ‘,YEAR(hof.date),’.’)
ORDER BY 1 DESC