我有很多帐户,每个帐户都有多个服务代码,每个服务都有一个与之关联的位置。我想提取帐号并解决服务执行的地址。在我的数据中,帐户上应该只有一个位置,但由于人为错误,有些帐户在每个服务上具有不同的位置。到目前为止我已经有了这个:
SELECT s.acctno, l.locationaddr
FROM service s LEFT JOIN location l on s.locationcode = l.locationcode
这为我提供了多个地点的帐户的重复帐户,我不能重复。如何覆盖locationaddr以仅提取帐户中的某个位置?我试过了
SELECT s.acctno, (SELECT TOP 1 l.locationaddr FROM location l)
FROM service s LEFT JOIN location l on s.locationcode = l.locationcode
但是这给了我相同的位置地址,无论它是否曾在该帐户上。我还能尝试什么?
答案 0 :(得分:0)
我认为你想要一个相关的子查询:
SELECT s.acctno,
(SELECT TOP 1 l.locationaddr
FROM location l
WHERE s.locationcode = l.locationcode
)
FROM service s;
答案 1 :(得分:0)
经过几个小时尝试不同的事情后,我最终解决了我的问题。有用的是
use UserAwareTrait;
/**
* @var EntrantInterface
* @ORM\ManyToOne(targetEntity="ReusableBundle\Model\EntrantInterface"inversedBy="entries")
*/
protected $user;