У меня есть 2 таблицы:
sellers
id|name
locations
id|seller_id|name
Теперь я хочу получить продавцов, объединить местоположения и объединить атрибуты из обеих таблиц в предложении where.
Исходный запрос:
SELECT
sellers.id
FROM sellers
JOIN locations.seller_id = sellers.id
Я должен добавить еще одну часть, потому что я не хочу дублировать данные:
SELECT
sellers.id
FROM sellers
JOIN locations on locations.seller_id = sellers.id
WHERE (
SELECT id from locations
WHERE locations.seller_id = sellers.id
LIMIT 1
)
Теперь я могу сделать следующее
SELECT
sellers.id
FROM sellers
JOIN locations on locations.seller_id = sellers.id
WHERE (
SELECT id from locations
WHERE locations.seller_id = sellers.id
LIMIT 1
)
AND (
sellers.name = 'test'
OR
locations.name = 'test'
)
- проблема здесь в том, что MySql присоединится к первому местоположению, и если имя этого местоположения не «test» и есть местоположение с именем «test» для этого продавца, его не будет в результатах.
Есть идеи?
ОБНОВЛЕНО:
пример с данными:
sellers
id|name
1|test
2|test2
locations
id|seller_id|name
1|1|test3
2|2|test4
3|2|test
4|2|test
result should be
[1, 2] but with my query it is [1]