我有一个表 ( netStream
),它有 2 个外键:( logSessions_logSessionID
) 和 ( accountSessions_accountSessionID
)。
( logSessions_logSessionID
) 是强制性的, ( accountSessions_accountSessionID
) 不是强制性的。
这是显示连接和非强制性状态的块方案的一部分:
(背景:logSessions
是每个访问者拥有的会话,accountSessions
是登录会话。每个人都有一个logSession
(因为每个人都是访问者),但不是每个人都登录,所以他们没有accountSession
)
我想在()中插入一行netStream
,在每种情况下都有一个(logSession
),但它与(accountSession
)不同。因此,当有 ( accountSession
) 时,我也想插入该 ID,如果没有 ( accountSession
),则将该字段留在 ( netStream
) NULL 中。
哈希值存储在 中Binary(x)
,这就是我使用UNHEX()
.
这是我写的mysql,没有报错,但是不行。问题是什么?
INSERT INTO `test-db`.`netStream` (`netStreamHash`, `logSessions_logSessionID`, `accountSessions_accountSessionID`)
SELECT UNHEX("1faab"), `logSessions`.`logSessionID`, NULL FROM `logSessions` CROSS JOIN `accountSessions`
WHERE `logSessions`.`logSessionHash` = UNHEX("aac") AND
`accountSessions`.`accountSessionHash` = UNHEX("2fb");