をグループ化するORDERとGROUP BY私は2つのテーブルがあります。のMySQL - JOINを、
CREATE TABLE Person {
ID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Surname VARCHAR(50) NOT NULL
}
と
CREATE TABLE Address {
ID INT PRIMARY KEY,
ID_Person INT NOT NULL,
Street VARCHAR(50),
HouseNumber VARCHAR(15),
City VARCHAR(75),
Zipcode VARCHAR(10),
CountryCode CHAR(2),
IsPrimary TINYINT(1) DEFAULT 0
}
一人一人がmuptipleアドレスを持つことができますが、最大1つがプライマリすることができ(IsPrimary = 1
を) 。
1つの住所の人のリストを取得したいと思います。人が一次アドレスを持っている場合は、それが重要でない場合は、提供されなければならない。
私はこのクエリを持っている:
SELECT
p.Name,
p.Surname,
a.Street,
a.Housenumber,
a.City,
a.Zipcode
FROM
Person AS p
LEFT JOIN (select * from Address ORDER BY IsPrimary DESC) AS a ON p.ID = a.ID_Person
GROUP BY p.ID
が、それは私が期待する結果を提供していません。私はGROUP BY
を実行するときに結合されたテーブルの最初の行が取得されると予想しましたが、そうではありません。
類似の質問がありましたhereしかし、解決策は私の状況ではむしろ困難です。
これは、ありがとうございます! – Zbynek