gpt4 book ai didi

MySql 用列名连接两个表

转载 作者:行者123 更新时间:2023-11-29 07:29:43 25 4
gpt4 key购买 nike

我的 MySQL 数据库中有这些表:

汽车表:

+----Cars   Table-----+
+---------------------+
| id | BMW | KIA |-and another cars
+----+----------+-----+
| 1 | M5 | Rio |
| 2 | Z1 | Serato |
| 3 | X5 | Sorento|

点赞表:

+----------------------+-----+
| id | Cars_id| Cars |ip |
+----+----------+------+-----+
| 1 | 1 | KIA |1.0.1|
| 2 | 1 | BMW |1.0.1|

基本上,Cars 表有更多的汽车 Mark 和他们的模型。

我的问题是,如何加入这个表 - Like.Cars_id=Cars.id 和 Like.Cars=Cars.Column names?

所以,我想要一个这样的查询:

SELECT Cars.BMW, Cars.KIA,  COUNT(Like.ip) AS likes
FROM CARS_Table
LEFT JOIN Like_table
ON Cars.id = Like.Cars_id AND what?

最佳答案

你应该这样规范化表格

Brand 
id, name
1, BMW
2, KIA
3, ...

cars
id, id_brand, car_name
1, 1, M5
2, 1, Z1
3, 1, X5
4, 2, Rio
5, 2, Serato
6, 2, Sorento

like_table

id, cars_id, ip
1, 1, 1.0.1
2, 1, 1.0.1


select b.name, c.name, count(ip)
from like_table l
inner join cars c on l.cars_id = c.id
inner join Brand b on b.id = c.id_brand
group by b.name, c.name

这样很容易得到汽车的喜欢,也很容易得到品牌和其他人的喜欢

select b.name count(ip)
from like_table l
inner join cars c on l.cars_id = c.id
inner join Brand b on b.id = c.id_brand
group by b.name

关于MySql 用列名连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52024463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com