-1

我现在使用三张桌子。

agare (owner)

===================================================================================================
| FNR   |FASTIGHETSBETECKNING|     NAMN      |  CO  |UTADR1|    UTADR2      | POSTNR    | POSTORT |
===================================================================================================
|854684 |     Berryfarm 1    | Granny Smith  | NULL | NULL | Treebranch 12  | 765 18    |  Meadow |
|135864 |     Satinfarm 1    | Sara Lovelace | NULL | NULL | Satin Hill 12  | 376 49    |  Satina |
|468952 |     Fairyhill 7    | Paula Green   | NULL | NULL |  Oaktree 12    | 468 67    |  Fairys |
|468952 |     Fairyhill 6    | Paula Green   | NULL | NULL |  Oaktree 12    | 468 67    |  Fairys |

fastighet (Estate that the owner owns)
===============================================================
| FNR  |FASTIGHETSBETECKNING|BELAGENHETSADRESS|POSTNR|POSTORT |
---------------------------------------------------------------
|854684|     Berryfarm 1    |  cherryroad 14  |759 45|Grassmow|
|135864|     Satinfarm 1    |  Satineroad 69  |136 89|Satiniqe|
|468952|     Fairyhill 7    |  fairysroad 17  |845 97|Birdsfal|
|468952|     Fairyhill 6    |  fairysroad 19  |962 63|Flowersy|
===============================================================

users (registrated user)
========================
|username|   adress    |
------------------------
| 854684 |             |
| 135864 |             |
| 468952 |fairysroad 17|
| 468952 |fairysroad 19|
========================

我可以找到拥有一个庄园的人:

SELECT FNR FROM agare,users WHERE FNR IN (SELECT FNR FROM fastighet, users WHERE FNR=username AND adress IS NULL GROUP BY FNR HAVING COUNT(FNR) < 2) AND users.username=FNR GROUP BY FNR

女巫重新调整了一个包含许多人的列表,其中地址字段为空白

但我想用来自 fastighet 的数据填充用户的空白地址字段。

我尝试使用INSERT into users (adress) SELECT "something"但我需要帮助

问候马丁

4

2 回答 2

0

我仍然在努力理解您的问题,但是您可能是在更新而不是插入之后吗?

请参阅sqlfiddle

我用 fastighet 表的地址更新了 users 表,其中每个 FNR 只有一个条目。我理解对了吗?

UPDATE users u INNER JOIN (SELECT * FROM fastighet GROUP BY FNR HAVING COUNT(*) = 1) f 
ON u.username = f.FNR
SET u.adress = f.BELAGENHETSADRESS;
于 2013-07-08T12:36:57.397 回答
0

您可以尝试UPDATE使用 fastighet 表的值在 users 表上运行类似于以下内容:

UDPATE a
SET address = b.FASTIGHETSBETECKNING
FROM users a
JOIN fastighet  b on a.username = b.fnr
WHERE a.address is null OR a.address = ''
于 2013-07-08T07:05:26.847 回答