( ) と ( )netStreamの 2 つの外部キーを持つテーブル ( ) があります。logSessions_logSessionIDaccountSessions_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");