所以,假设我有这三个表(数据不合逻辑)。
拥有者
ID_OWNER | NAME | SURNAME
1 John Carter
2 Chris Collins
3 Wright Doe
汽车
ID_OWNER | MODEL | MODEL_TYPE
1 | FORD_FOCUS | FAMILY
1 | TRANSPORTER_VW | TRANSPORTER
1 | VOLVO_S60 | null
2 | VOLVO_S80 | null
价格
MODEL_TYPE| PRICE1
FAMILY | 2
TRANSPORTER | 4
所以到目前为止我有两个 SQL 语句。第一个搜索所有者:
SELECT
o.NAME, o.SURNAME
FROM
OWNERS o
WHERE
o.NAME='John';
第二个搜索所有者“约翰”的型号和价格。由于 MODEL_TYPE 可能为空值,我使用了 LEFT JOIN。我得到了三排。
SELECT
CARS.ID_OWNER, CARS.MODEL, CARS.MODEL_TYPE, PRICE.PRICE1
FROM
CARS
LEFT JOIN
PRICE ON CARS.MODEL_TYPE = PRICE.MODEL_TYPE
WHERE
CARS.ID_OWNER = 1;
结果:
ID_OWNER | MODEL | MODEL_TYPE | PRICE1 | NAME |SURNAME
1 | FORD FOCUS | FAMILY | 2 | JOHN | CARTER
1 | TRANSPORTER_VW | TRANSPORTER | 4 | JOHN | CARTER
1 | VOLOV_S60 | null | null | JOHN | CARTER
现在,我需要在一个 SQL 查询中的一行中获得 John Carter 拥有的所有汽车及其型号类型和价格的结果。我被困住了。
是否可以?我阅读了有关枢轴和其他可能性的信息,但没有找到合适的答案。如何将它合并并将结果合并为一行而不是三行?