У меня здесь отношения один ко многим. Кроме того, не все «первичные» записи будут иметь объединенную запись во второй таблице базы данных.
Вот мои таблицы:
tbl_customers
tbl_addresses
У записи клиента в tbl_customers
может быть много адресов в таблице tbl_addresses
.
Вот моя дилемма. Существует много записей о клиентах с несколькими адресами, и я назначаю одну из этих записей адресов в качестве «основного» адреса для записи клиента. Это просто один column
, называемый: primaryAddress
. Значение будет номером 1, если эта адресная запись является основным адресом.
Так вот мой запрос:
SELECT c.customername, a.state
FROM `tbl_customers` c
LEFT JOIN `tbl_addresses` a ON c.customerid = a.customerid
Этот запрос приведет к дублированию записей для любого клиента с более чем 1 адресом.
Если я добавлю немного больше в левое соединение:
SELECT c.customername, a.state
FROM `tbl_customers` c
LEFT JOIN `tbl_addresses` a ON c.customerid = a.customerid AND a.primaryAddress = 1
Это не дает результатов, даже когда я вижу в базе данных много записей адресов с primaryAddress = 1.
Так что я думаю, что мой запрос неправильный.
Может кто-то увидеть, что мне не хватает?