Symfony 使用IN for multiple attribute连接两个表
我有两张像这样的桌子 书桌Symfony 使用IN for multiple attribute连接两个表,symfony,doctrine-orm,Symfony,Doctrine Orm,我有两张像这样的桌子 书桌 class BookData { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * * @ORM\ManyToMany(targetEntity="Acme\TopBundle\Entity\AuthorData") * @ORM\Jo
class BookData
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\ManyToMany(targetEntity="Acme\TopBundle\Entity\AuthorData")
* @ORM\JoinColumn(name="authorId", referencedColumnName="authorId",onDelete="SET NULL")
*/
private $authorId;
作者表
class AuthorData
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string",unique=true,nullable=true)
*/
private $authorId;
一个图书行可以有多个$authorID
然后,我想选择至少有一本书的作者
$query = $em->createQuery(
"SELECT n.name FROM AcmeTopBundle:AuthorData a
INNER JOIN AcmeTopBundle:BookData b
Where b.authorId IN b.authorId
");
不管它怎么说
[Syntax Error] line 0, col 112: Error: Expected Doctrine\ORM\Query\Lexer::T_OPEN_PARENTHESIS, got 'a'
我该怎么做?必须将“In”括在括号中,因此它不是有效的语法
更好的方法是在书和作者之间使用。然后可以使用内部联接从结果中删除任何没有作者的书籍
select a from AcmeTopBundle:AuthorData a JOIN a.books
谢谢,我能解决我的问题,这就是我想要的信息。