在mysql中连接两个表和一个到多个关系

eit6fx6z  于 2023-08-02  发布在  Mysql
关注(0)|答案(2)|浏览(97)

我有两张这样table:
电话
| 名称,名称|标价| price |
| --|--| ------------ |
| A20|一百| 100 |
| A30|两百| 200 |
型号:
| 电话ID|模型化| model |
| --|--| ------------ |
| 一个|20 -128GB| a20-128GB |
| 一个|a20-256GB| a20-256GB |
| 二个|a30-128GB| a30-128GB |
| 二个|a30-256GB| a30-256GB |
| 二个|a30-512GB| a30-512GB |
我想编写SQL来给予如下结果:
| 名称,名称|标价|模型化| model |
| --|--|--| ------------ |
| A20|一百|20 -128GB| a20-128GB |
| A20|一百|200-256GB| 200-256GB |
| A30|两百|100-128GB| 100-128GB |
| A30|两百|200-256GB| 200-256GB |
| A30|两百|200-512GB| 200-512GB |
我尝试左加入但不能成功我尝试somthing这样:

SELECT `phones`.* , `models`.`phone_id` , `models`.`model` 
FROM `phones` 
LEFT JOIN `models` 
ON `phones`.id = `models`.`phone_id`

字符串
但模型列返回null

r9f1avp5

r9f1avp51#

此查询应该适用于您:

SELECT m.id, p.name, p.price, m.model
FROM phones p
INNER JOIN models m ON p.id = m.phone_id;

字符串

bihw5rsg

bihw5rsg2#

SELECT p.id, p.name, p.price, m.model
FROM phones p
CROSS JOIN models m
WHERE m.phone_id = p.id
ORDER BY p.id, m.id;

字符串

相关问题