Google Mail Kalender Text & Tabellen Reader Web Mehr »
Kürzlich besuchte Gruppen | Hilfe | Anmelden
Google Groups-Startseite
Table join confusion...
Gegenwärtig gibt es mehrere Themen in dieser Gruppe, die zuerst angezeigt werden sollen. Damit dieses Thema zuerst angezeigt werden kann, muss diese Option bei einem anderen Thema entfernt werden.
Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten. Versuchen Sie es erneut.
Kennzeichnen
  9 Nachrichten - Alle ausblenden  -  Alles übersetzen in die Sprache: Übersetzt (alle Originale anzeigen)
Bei der Gruppe, für die Sie eine Mitteilung verfassen, handelt es sich um eine Usenet-Gruppe. Wenn Sie in dieser Gruppe Nachrichten posten, ist Ihre E-Mail-Adresse für jeden im Internet sichtbar
Ihre Antwort wurde nicht gesendet.
Die Nachricht wurde übermittelt.
 
Von:
An:
Cc:
Nachtrag zu:
Cc hinzufügen | Nachtrag hinzufügen zu | Betreff bearbeiten
Betreff:
Bestätigung:
Geben Sie zur Bestätigung die im folgenden Bild angezeigten Zeichen oder die durchgesagten Zahlen ein, indem Sie auf das Eingabesymbol klicken. Hören Sie zu und geben Sie die gehörten Zahlen ein
 
jakobjp  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 7 Nov. 2009, 19:48
Von: jakobjp <m...@jakobjp.net>
Datum: Sat, 7 Nov 2009 10:48:55 -0800 (PST)
Lokal: Sa 7 Nov. 2009 19:48
Betreff: Table join confusion...
I need a little assistance with a join over 3 tables.

I have the following Models (User > Profile > Infogroup >
Information):
- User (hasMany Profile)
- Profile (belongsTo User, hasMany Infogroup)
- Infogroup (belongsTo Profile, hasMany Information)
- Information (belongsTo Infogroup)

The relationships are defined in the model classes, and there is no
problem getting the associated data, when for example fetching a User.

However, what do I need to do to get all Information that belongs to a
specific User?

I.e. all rows from the informations table "where
Information.infogroup_id = Infogroup_id AND Infogroup.profile_id =
Profile.id AND Profile.user_id = XYZ"?


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Thiago Nuic Vidigal  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 7 Nov. 2009, 20:35
Von: Thiago Nuic Vidigal <tvidi...@gmail.com>
Datum: Sat, 7 Nov 2009 17:35:18 -0200
Lokal: Sa 7 Nov. 2009 20:35
Betreff: Re: Table join confusion...

You can include other tables in the query using the 'joins' option of the
Model->find method.


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
kdubya  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 18 Nov. 2009, 21:24
Von: kdubya <kenwin...@winanstech.com>
Datum: Wed, 18 Nov 2009 12:24:59 -0800 (PST)
Lokal: Mi 18 Nov. 2009 21:24
Betreff: Re: Table join confusion...
On Nov 7, 2:35 pm, Thiago Nuic Vidigal <tvidi...@gmail.com> wrote:

> You can include other tables in the query using the 'joins' option of the
> Model->find method.

This sound like the solution to a problem I am trying to solve but I
have looked in the Manual and can find almost nothing about "joins"
option to "find()'. Can you give an example of a "find()" that uses
"joins"? I am looking for the specific syntax.

Thank you,
Ken


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Dr. Loboto  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 19 Nov. 2009, 04:51
Von: "Dr. Loboto" <drlob...@gmail.com>
Datum: Wed, 18 Nov 2009 19:51:37 -0800 (PST)
Lokal: Do 19 Nov. 2009 04:51
Betreff: Re: Table join confusion...
http://bakery.cakephp.org/articles/view/quick-tip-doing-ad-hoc-joins-...

Minimal code for join:
$this->find(
    'all',
    array (
        'joins' => array (
            array (
                'table' => 'my_table',
                'alias' => 'MyTable',
                'conditions' => 'MyTable.foreign_key = '.$this-

>alias.'.id'

            )
        )
    )
);

On Nov 19, 2:24 am, kdubya <kenwin...@winanstech.com> wrote:


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Josh  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 19 Nov. 2009, 05:45
Von: Josh <joshs.silver...@gmail.com>
Datum: Wed, 18 Nov 2009 20:45:04 -0800 (PST)
Lokal: Do 19 Nov. 2009 05:45
Betreff: Re: Table join confusion...
Hello,

Have you set recursive to 2 in your find options array (http://
book.cakephp.org/view/439/recursive)? When querying your User model,
that should get you the profile and infogroups.

As for joining Information to your infogroups, I am not sure if
recursive = 2 will automatically join to that depth. Try binding
Information to the Infogroup model before querying. When working from
the User model:

            $this->Profile->Infogroup->bindModel(
                array('hasMany' => array('Information'))
            );

Since this will take you to three levels of recursion, you might also
want to unbind any extra models.

Let me know what works for you. I have never needed to join past
recursive = 2.

Good luck.

On Nov 18, 3:24 pm, kdubya <kenwin...@winanstech.com> wrote:


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
kdubya  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 20 Nov. 2009, 14:45
Von: kdubya <kenwin...@winanstech.com>
Datum: Fri, 20 Nov 2009 05:45:01 -0800 (PST)
Lokal: Fr. 20 Nov. 2009 14:45
Betreff: Re: Table join confusion...
Dr. Lobato,

Thank you. I don't know why I didn't find this article on the bakery
but it looks just what I need. Your example code is very clear. I'll
try it today.

Ken

On Nov 18, 10:51 pm, "Dr. Loboto" <drlob...@gmail.com> wrote:

<snip>

    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Dave  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 20 Nov. 2009, 20:52
Von: Dave <davidcr...@gmail.com>
Datum: Fri, 20 Nov 2009 14:52:33 -0500
Lokal: Fr. 20 Nov. 2009 20:52
Betreff: Re: Table join confusion...

Probably because if you follow naming convention cake handles all of the
necessary joins for you behind the scenes.  You should definitely check your
recursive value as the previous poster mentioned as well as your database
relationships set in your model.  Usually User hasOne Profile I would think,
so with hasMany you may get quite a few profile results depending on your
find call.


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Josh  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 21 Nov. 2009, 05:08
Von: Josh <joshs.silver...@gmail.com>
Datum: Fri, 20 Nov 2009 20:08:21 -0800 (PST)
Lokal: Sa 21 Nov. 2009 05:08
Betreff: Re: Table join confusion...
@kdubya

I was curious about recursions past a depth of 2 so I ran some tests
on a data model I'm currently working with. Apparently you can set
recursive as high as you want. In your case you would want $this-

>recursive = 3 (when writing in the context of your model)

Be sure to unbind unnecessary model relations! Cake will not only join
to whatever depth you want, but it will also rejoin domains so you'd
have information repeated in your resulting array (if you don't unbind
the the belongsTo relation going in the other direction).

If you get your model relations correct, this is a REALLY easy way to
achieve what you are looking for.

Josh

On Nov 20, 2:52 pm, Dave <davidcr...@gmail.com> wrote:


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Jesh  
Profil anzeigen   Übersetzen in die Sprache: Übersetzt (Original anzeigen)
 Weitere Optionen 21 Nov. 2009, 20:04
Von: Jesh <joshs.silver...@gmail.com>
Datum: Sat, 21 Nov 2009 11:04:16 -0800 (PST)
Lokal: Sa 21 Nov. 2009 20:04
Betreff: Re: Table join confusion...
whoops. I meant to address that last comment to jakobjp

On Nov 20, 11:08 pm, Josh <joshs.silver...@gmail.com> wrote:


    Weiterleiten  
Sie müssen sich anmelden, bevor Sie Nachrichten veröffentlichen können.
Bevor Sie eine Nachricht posten können, müssen Sie zunächst dieser Gruppe beitreten.
Bitte aktualisieren Sie vor dem Posten in den Abonnementeinstellungen Ihren Spitznamen.
Sie haben nicht die erforderliche Berechtigung zum Posten.
Ende der Nachrichten
« Zurück zu Diskussionen « Neueres Thema     Älteres Thema »

Eine Gruppe erstellen - Google Groups - Google-Startseite - Nutzungsbedingungen - Datenschutzbestimmungen
©2010 Google