DDC-2375: Join with multiples tables #2985

Closed
opened 2026-01-22 14:09:01 +01:00 by admin · 2 comments
Owner

Originally created by @doctrinebot on GitHub (Mar 27, 2013).

Originally assigned to: @Ocramius on GitHub.

Jira issue originally created by user acrivelari:

Dear Friends, I've a question about Join with multiple tables.
I've 3 tables: Country, State, City, and I need get country_name from City Entity.
Any suggestion?

Table City:
city_id
state_id
city_name

Table State
state_id
country_id
state_name

Table Country
country_id
country_name

This is my Entity City:

<?php

namespace System\Entity;

use Doctrine\ORM\Mapping as ORM,
Doctrine\Common\Collections\ArrayCollection;

/****

    SysCity
    *
    @ORM\Table(name="sys_city")
    @ORM\Entity(repositoryClass="System\Entity\SysCityRepository")
    */
    class SysCity
    {
    /*
    Instantiate all methods gets and sets
    */

public function **construct($options = null)
{ Configurator::configure($this, $options); }

/****

    @var integer
    *
    @ORM\Column(name="id_city", type="integer", nullable=false)
    @ORM\Id
    @ORM\GeneratedValue(strategy="IDENTITY")
    */
    private $idCity;

/****

    @var string
    *
    @ORM\Column(name="city", type="string", length=255, nullable=false)
    */
    private $city;

/****

    @var \SysState
    *
    @ORM\ManyToOne(targetEntity="System\Entity\SysState", inversedBy="state")
    @ORM\JoinColumns( { ** @ORM\JoinColumn(name="id_state", referencedColumnName="id_state") ** }

    )
    */
    private $idState;

/****

    @var \SysCountry
    *
    @ORM\ManyToMany(targetEntity="System\Entity\SysCountry", inversedBy="country")
    @ORM\JoinTable(name="sys_state",
    joinColumns= {@ORM\JoinColumn(name="id*state", referencedColumnName="id*state")}

    ,
    inverseJoinColumns= {@ORM\JoinColumn(name="id*country", referencedColumnName="id*country")}
    )
    */
    private $idCountry;

public function getIdCity()
{ return $this->idCity; }

public function setIdCity($idCity)
{ $this->idCity = $idCity; return $this; }

public function getCity()
{ return $this->city; }

public function setCity($city)
{ $this->city = $city; return $this; }

public function getIdState()
{ return $this->idState; }

public function setIdState($idState)
{ $this->idState = $idState; return $this; }

public function getIdCountry()
{ return $this->idCountry; }

public function setIdCountry($idCountry)
{ $this->idCountry = $idCountry; return $this; }

Thanks a lot!

Originally created by @doctrinebot on GitHub (Mar 27, 2013). Originally assigned to: @Ocramius on GitHub. Jira issue originally created by user acrivelari: Dear Friends, I've a question about Join with multiple tables. I've 3 tables: Country, State, City, and I need get country_name from City Entity. Any suggestion? Table City: city_id state_id city_name Table State state_id country_id state_name Table Country country_id country_name This is my Entity City: ``` <?php namespace System\Entity; use Doctrine\ORM\Mapping as ORM, Doctrine\Common\Collections\ArrayCollection; /**** SysCity * @ORM\Table(name="sys_city") @ORM\Entity(repositoryClass="System\Entity\SysCityRepository") */ class SysCity { /* Instantiate all methods gets and sets */ public function **construct($options = null) { Configurator::configure($this, $options); } /**** @var integer * @ORM\Column(name="id_city", type="integer", nullable=false) @ORM\Id @ORM\GeneratedValue(strategy="IDENTITY") */ private $idCity; /**** @var string * @ORM\Column(name="city", type="string", length=255, nullable=false) */ private $city; /**** @var \SysState * @ORM\ManyToOne(targetEntity="System\Entity\SysState", inversedBy="state") @ORM\JoinColumns( { ** @ORM\JoinColumn(name="id_state", referencedColumnName="id_state") ** } ) */ private $idState; /**** @var \SysCountry * @ORM\ManyToMany(targetEntity="System\Entity\SysCountry", inversedBy="country") @ORM\JoinTable(name="sys_state", joinColumns= {@ORM\JoinColumn(name="id*state", referencedColumnName="id*state")} , inverseJoinColumns= {@ORM\JoinColumn(name="id*country", referencedColumnName="id*country")} ) */ private $idCountry; public function getIdCity() { return $this->idCity; } public function setIdCity($idCity) { $this->idCity = $idCity; return $this; } public function getCity() { return $this->city; } public function setCity($city) { $this->city = $city; return $this; } public function getIdState() { return $this->idState; } public function setIdState($idState) { $this->idState = $idState; return $this; } public function getIdCountry() { return $this->idCountry; } public function setIdCountry($idCountry) { $this->idCountry = $idCountry; return $this; } ``` Thanks a lot!
admin added the New Feature label 2026-01-22 14:09:01 +01:00
admin closed this issue 2026-01-22 14:09:03 +01:00
Author
Owner

@doctrinebot commented on GitHub (Mar 27, 2013):

Comment created by @ocramius:

This is an issue tracker, not a support forum. Please ask your questions on the http://groups.google.com/group/doctrine-user mailing list or on http://stackoverflow.com/ or on IRC on irc://irc.freenode.net#doctrine

@doctrinebot commented on GitHub (Mar 27, 2013): Comment created by @ocramius: This is an issue tracker, not a support forum. Please ask your questions on the http://groups.google.com/group/doctrine-user mailing list or on http://stackoverflow.com/ or on IRC on irc://irc.freenode.net#doctrine
Author
Owner

@doctrinebot commented on GitHub (Mar 27, 2013):

Issue was closed with resolution "Invalid"

@doctrinebot commented on GitHub (Mar 27, 2013): Issue was closed with resolution "Invalid"
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#2985