簡體   English   中英

如何使用來自其他兩個表的數據填充 mysql 表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM