[英]How to populate a mysql table with data from two other tables
我有兩個具有多對多關系的表,以及它們之間的聯合表,例如:
client (id, name)
address (id, address)
client_address (client_id, address_id)
我需要使用特定地址為每個客戶端填充一行 client_address 表,例如:
client_id, address_id
1, 1
2, 1
3, 1
4, 1
etc...
我嘗試了這樣的事情(顯然不起作用):
INSERT INTO
client_address (`client_id`, `address_id`)
SELECT id from client,
SELECT id from address where address = 'My Address';
我可以用一個查詢來做到這一點嗎?
如果您必須像您的示例一樣手動填充它,您可以嘗試使用 CROSS JOIN:
INSERT INTO
client_address (`client_id`, `address_id`)
SELECT c.id, a.id
FROM client c,
CROSS JOIN address a
WHERE address = 'My Address';
這將為您在 CLIENT 表中的每個客戶以及您在 WHERE 子句中選擇的地址創建一行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.