Mam 2 tabele (Dla ułatwienia tabele razem z danymi):
Tabela A.
CREATE TABLE `tabA` ( `ida` int(5) NOT NULL AUTO_INCREMENT, `war1` int(5) NOT NULL, `war2` int(5) NOT NULL, `war3` int(5) NOT NULL, PRIMARY KEY (`ida`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO `tabA` (`ida`, `war1`, `war2`, `war3`) VALUES (1, 1, 2, 3), (2, 2, 2, 1), (3, 3, 1, 1), (4, 3, 2, 3);
Tabela B.
CREATE TABLE `tabB` ( `idb` int(5) NOT NULL AUTO_INCREMENT, `warx` varchar(2) NOT NULL, PRIMARY KEY (`idb`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO `tabB` (`idb`, `warx`) VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd');
Moje zapytanie.
SELECT `tabA`.`ida` , `tabA`.`war3` , `tabB`.`warx` , `tabA`.`war1` , `tabA`.`war2` , `tabB_1`.`warx` , `tabB_2`.`warx` FROM `intranet`.`tabB` `tabB_2` RIGHT OUTER JOIN (`intranet`.`tabB` `tabB_1` RIGHT OUTER JOIN (`intranet`.`tabB` `tabB` RIGHT OUTER JOIN `intranet`.`tabA` `tabA` ON `tabB`.`idb` = `tabA`.`war1` ) ON `tabB_1`.`idb` = `tabA`.`war2` ) ON `tabB_2`.`idb` = `tabA`.`war3`
Zapytanie jest na 100% dobre ponieważ po wykonaniu go np w phpMyAdmin działa super.
Rezultat, który chce uzyskać.
id 1,00
1,00 a
2,00 b
3,00 c
id 2,00
2,00 b
2,00 b
1,00 a
id 3,00
3,00 c
1,00 a
1,00 a
id 4,00
3,00 c
2,00 b
3,00 c
Strona z zapytaniem.
mysql_select_db($database_intanet, $intanet); $query_Recordset1 = "SELECT `tabA`.`ida` , `tabA`.`war3` , `tabB`.`warx` , `tabA`.`war1` , `tabA`.`war2` , `tabB_1`.`warx` , `tabB_2`.`warx` FROM `intranet`.`tabB` `tabB_2` RIGHT OUTER JOIN ( `intranet`.`tabB` `tabB_1` RIGHT OUTER JOIN ( `intranet`.`tabB` `tabB` RIGHT OUTER JOIN `intranet`.`tabA` `tabA` ON `tabB`.`idb` = `tabA`.`war1` ) ON `tabB_1`.`idb` = `tabA`.`war2` ) ON `tabB_2`.`idb` = `tabA`.`war3`"; $Recordset1 = mysql_query($query_Recordset1, $intanet) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); ?> <table border="0"> <tr> <td>ida</td> <td>war3</td> <td>warx</td> <td>war1</td> <td>war2</td> <td>warx</td> <td>warx</td> </tr> <?php do { ?> <tr> </tr> </table> <?php ?>
Problem
- wyświetla pierwszą dana. Nie wiem jak wyświetlić pozostałe "warx". Przez to że w zapytaniu tworzone były aliasy, mam 3 zmienne o nazwie "warx".
próbowałem wywoływać je podajac dodatkowo alias tabeli czyli:
Oczywiście nie dało to pożądanego rezultatu.
Jak wyświetlić "warx" z tabeli "tabB", "warx" z tabeli "tabB_1", "warx" z tabeli "tabB_2"?
Z cała pewnością da się wyświetlić wszystkie dane z zapytania tylko moja wiedza jest zbyt płytka.