0
我有多個表格,如 它有點複雜。從四個表格的組合中選擇用戶數據
1)正常用戶表
User
id|username
0 |Tom
1 |Dad
2 |Bob
2),用於區域
SmallArea
id|name |bigarea
0 |blockA | 0(prefA)
1 |blockB | 0(prefA)
2 |blockC | 1(prefB)
3 |blockD | 1(prefB)
4 |blockE | 2(prefC)
3的兩個表),用於區域的兩個表
BigArea
id | name
0 | prefA
1 | prefB
2 | prefC
它意味着
BLOCKa中和blockB屬於prefA
blockC和blockD屬於的PrefB
β受體拮抗劑屬於前綴C
4)用戶和小面積的連接表
AreaConnection
user_id|smallarea
0(Tom) | 0(blockA)
0(Tom) | 1(blockB)
1(Dad) | 2(blockC)
1(Dad) | 3(blockD)
2(Bob) | 3(blockD)
它意味着
湯姆屬於BLOCKa中和blockB
父親屬於blockC和塊D
鮑勃屬於blockD
然後 假設,我有BigArea鍵0(這意味着的PrefB)
我要選擇屬於屬於bigarea命名的PrefB塊的用戶。
(的PrefB有blockC和blockD,
然後爸爸鮑伯是屬於blockC或blockD,
所以爸爸鮑伯應選擇)
我怎麼會寫在SQL這個模式? Doctrine2是更好,比如
SELECT u.id,u.username
FROM User u
INNER JOIN ??????
這些都是我的實體。
class User.php
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer",unique=true)
* @ORM\Id
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $username;
/**
* @ORM\ManyToMany(targetEntity="Acme\UserBundle\Entity\SmallArea")
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(name="areaid", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id")}
*)
*/
protected $SmallArea;
}
class BigArea
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer",unique=true)
* @ORM\Id
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $label;
/**
*
* @ORM\OneToOne(targetEntity="Acme\UserBundle\Entity\SmallArea", mappedBy="prefecture")
*/
private $prefecture;
}
class SmallArea{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string")
*/
private $label;
/**
*
* @ORM\ManyToOne(targetEntity="Acme\UserBundle\Entity\BigArea", inversedBy="prefecture*removethis : name of the variable in BigArea.php*")
* @ORM\JoinColumn(referencedColumnName="id",nullable=false)
*/
private $prefecture;
}
由於它工作正常SQL.But我麻煩與翻譯這doctorine2格式,,沒有人幫助嗎?在Doctorine2 AreaConnection表concealed.User和SmallArea實體做出這個自動。 – whitebear
爲您必須提供您的映射 –
我添加了我的實體編輯 – whitebear