0

と の 2 つのテーブルがimagesありserversます。これら 2 つのテーブルに関連するスキーマは次のとおりです。

id, name, uploaded, views, server_id

id, name, description, drive_space, enabled

imagesテーブルでは、テーブル内のフィールドserver_idへの外部キーです。かなり単純なもの。多くの画像が 1 つのサーバーに属しています。idservers

画像を挿入するとき、画像がホストされいるサーバーを指すキーが必要です。行を挿入すると、サーバーの名前 (ID ではなく) が与えられるので、単に挿入することはできません。2 つのクエリ (サーバー ID を取得するクエリと、画像をデータベースに挿入するクエリ) で目的を達成できますが、ベスト プラクティスとして、JOIN を使用して 1 つのクエリで実行するのが理想的です。

SELECT ステートメントに関して言えば、JOINS についてはほとんど無知であり、INSERT に関してはなおさらです。誰でも私を助けることができますか?

4

1 に答える 1

2

参加する必要はありません。INSERT ... SELECT ... を使用するだけです。

INSERT INTO images
(name, uploaded, views, server_id)
SELECT 'imagename', CURTIME(), 0, id
FROM servers
WHERE name = 'servername'
于 2012-07-11T20:15:14.403 に答える