我不知道这个问题的条款,标题可能是有点误导。
我试图创建一个1到许多表概述,但只希望选择的关系表1倍的例子。
为表
name
id
汽车颜色
car_id
color
一辆车可以有许多不同的颜色。 不过,我要选择“概览”只是一种颜色。 我怎样才能做到这一点? 我尝试导致了很多与同车排的多种颜色的结果。
优选地,在一个查询,如果可能的。
提前致谢
编辑:
我想我的问题是模糊的。 我想选择汽车表内的所有汽车,但只有1个颜色(它后面的第一个)。
Foo blue
Bar blue
Barfoo yellow
等等
然而富有颜色,蓝色,黄色,红色,黑色等。
至于表中创建查询,这是一个“虚拟”的版本。 我只是想学习如何使用推到正确的方向解决这个问题。
你需要这样的查询:
SELECT * FROM car
INNER JOIN car_color ON car.id = car_color.car_id
LIMIT 1 -- this will limit the results to only one row
编辑:让只用一种颜色的车,你可以使用组:
SELECT * FROM car
INNER JOIN car_color ON car.id = car_color.car_id
GROUP BY car.id -- this will group all the rows with the same car to only one row per car
How about this.
CREATE table car(name varchar(10),id int primary key);
CREATE table car_details(car_id int foreign key references car(id), color varchar(20));
INSERT into car values('BMW',1);
INSERT into car_details values(1,'Blue');
INSERT into car values('toyota',2);
INSERT into car_details values(2,'pink');
SELECT * FROM
car c INNER join car_details cd
on c.id = cd.car_id
limit 1;
Results in.
name id car_id color
---------- ----------- ----------- --------------------
BMW 1 1 Blue
SUBQUERY
select cc.color from CarColours cc,Car c where cc.car_id = c.id and c.id = 1 limit 1