phpbar.de logo

Mailinglisten-Archive

[dbs] Problem mit Join Query

[dbs] Problem mit Join Query

Sebastian Mendel lists at sebastianmendel.de
Mit Mar 24 13:37:09 CET 2004


Daniel Nolte wrote:

> Sebastian Mendel wrote:
> 
>> [....]
>> ( ... sieht so nach Access aus)
> 
> Wie kommst du darauf? (Ist für MySql)

mhm, sah so aus ... zumindest sieht es nicht so aus als ob der 
DB-Designer von Anfang an mit MySQL gearbeitet hat


>> [...]
>
> Hmm, jo, den Ansatz hatte ich auch schon, dann kriege ich aber nicht das 
> gewünschte Ergebnis. Das Filtert mir zwar in der aktuellen Row richtig, 
> aber gibt mir dann trotzdem noch n-1 falschw rows, weil es nur für die 
> aktulle Row überprüft, ob static_building.iSBuildingId != 
> building._iSBuildingId und nicht für alle in building vorhanden 
> iSBuildingIds.
> 
> Noch eine Idee

achso du willst alle Datensätze aus `static_building` wo der Feldwert 
von `iSBuildingId` in _überhaupt keinem_ Datensatz von `building` 
vorkommt???

vielleicht so?:


    SELECT static_building.iSBuildingId,
           static_building.strSBuildingName,
           static_building.iSBuildingTs
      FROM static_building
LEFT JOIN building
        ON static_building.iSBuildingParent = building._iSBuildingId
LEFT JOIN research
        ON static_building._iSResearchId = research._iSResearchId
LEFT JOIN building AS not_building
        ON static_building.iSBuildingId = building._iSBuildingId
     WHERE building._iUserId = 1
       AND building._iLocationId = 2
       AND research._iUserId = 1
    HAVING ISNULL(not_building._iSBuildingId)

-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

php::bar PHP Wiki   -   Listenarchive