我想不出该怎么办内左此查询加入更新(这是选择查询什么工作):
SELECT
*
FROM
emr AS e
LEFT JOIN visit_ltnot AS v ON e.guid = v._pn
WHERE
closedate='12-31-79' AND pat='00000906' AND apptstatus=''
AND v.pdate='' AND emrdate <= '2013-11-26';
我需要更新电子病历表closedate。
我已经追平以下查询:
UPDATE emr
FROM
emr AS e
LEFT JOIN visit_ltnot AS v ON e.guid = v._pn SET closedate=''
WHERE
closedate='12-31-79' AND pat='00000906' AND apptstatus=''
AND v.pdate='' AND emrdate <= '2013-11-26';
UPDATE emr
SET closedate=''
FROM
emr AS e
LEFT JOIN visit_ltnot AS v ON e.guid = v._pn
WHERE
closedate='12-31-79' AND pat='00000906' AND apptstatus=''
AND v.pdate='' AND emrdate <= '2013-11-26';
我得到的语法错误,我需要更新closedate值。
如果你正在使用MySQL,那么这应该工作:
UPDATE emr e LEFT JOIN
visit_ltnot v
ON e.guid = v._pn
SET closedate = ''
WHERE closedate = '12-31-79' AND
pat = '00000906' AND
apptstatus = '' AND
v.pdate = '' AND
emrdate <= '2013-11-26';
笔记:
UPDATE
没有MySQL中的FROM
条款。v.pdate
被转动外连接到内连接。所以,你还不如用inner join
。'12-31-79'
。正确的日期格式是'1979-12-31'
。v.pdate = ''
没有意义。