10. januar 2004 - 20:55Der er
2 kommentarer og 2 løsninger
Join med undtagelser?
Jeg skal have sat disse sammen ud fra tabellen "clan".
clan:: clanName varchar(250) clanDescription text clanLeader int(4) => player.playerID (hvor den skal have fat i playerHandle) clanContact int(4) =>player.playerID (hvor den skal have fat i playerHandle) clanLogo int(4) => picture.pictureID ( hvor den skal have pictureURI)
lige nu henter jeg det ud på dene måde: $query = "SELECT clanName, clanDescription, playerHandle, playerHandle, clanHomepage, clanIrc, tag, tagType, pictureURI FROM (picture LEFT JOIN clan ON picture.pictureID = clan.clanLogo) LEFT JOIN player ON clan.clanContact = player.playerID OR clan.clanLeader = player.playerID WHERE clan.clanID = '$_GET[cID]';
Men hvis clanLogo == NULL så henter den ingenting, hvordan skal det løses?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
10. januar 2004 - 21:16#1
$query = "SELECT clanName, clanDescription, playerHandle, playerHandle, clanHomepage, clanIrc, tag, tagType, pictureURI FROM (picture LEFT JOIN clan ON picture.pictureID = clan.clanLogo OR clan.clanLogo IS NULL) LEFT JOIN player ON clan.clanContact = player.playerID OR clan.clanLeader = player.playerID WHERE clan.clanID = '$_GET[cID]';
Burde løse det...
Synes godt om
Slettet bruger
10. januar 2004 - 21:21#2
lige lidt for hurtig der....
noget i stil med nedenstående - burde gøre det! $query = "SELECT clanName, clanDescription, playerHandle, playerHandle, clanHomepage, clanIrc, tag, tagType, pictureURI FROM player, clan LEFT JOIN picture.pictureID ON clan.clanLogo=picture.pictureID WHERE (player.playerID=clan.clanContact OR clan.clanLeader) AND clan.clanID='".$_GET['cID']."'";
Definitionen af en LEFT JOIN er, at de 2 tabeller sammensmeltes når det boolske udtryk er sandt... til dette resultat tilføjes alle de records i den venstre tabel som ikke er blevet sammensmeltet med en record i den højre...
Prøv evt. at bruge en FULL OUTER JOIN (svarer til både LEFT JOIN og RIGHT JOIN)
Hej! tak for svarene... det var lidt en blanding af jeres svar der ledte hen til den rigtige: $query = "SELECT clanName, clanDescription, playerHandle, playerHandle, clanHomepage, clanIrc, tag, tagType, pictureURI FROM (picture RIGHT OUTER JOIN clan ON picture.pictureID = clan.clanLogo) LEFT JOIN player ON clan.clanContact = player.playerID OR clan.clanLeader = player.playerID WHERE clan.clanID = '$_GET[cID]'";
så i deles om pointne.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.