我有一个表 ( 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");