
Т.е после JOIN у нас получается таблица из которой нужно выбирать строки, где ячейки good.name одинаковые, а price.price 2 > price.price 1 на 5%, где country разные.
Даже не представляю как это сделать.
Цитата (Invis1ble @ 31.01.2018 - 11:20) |
price2 / price1 = 1.05 |
Цитата (depp @ 31.01.2018 - 13:02) |
price2 / price1 > 1.05 |
SELECT
c.name AS country,
g.name AS good,
p.price1, p.price2
FROM
`price` AS p
INNER JOIN
`country` AS c ON c.countryid = p.countryid
INNER JOIN
`good` AS g ON g.goodid = p.goodid
WHERE
(p.price2 / p.price1) > 1.05
Цитата (Kusss @ 31.01.2018 - 13:52) |
SELECT |
Цитата |
выбрать только те товары у которых значение ячейки good.name одинаковое |
Цитата (Kusss @ 31.01.2018 - 20:50) | ||
это как ? Я не въезжаю :( SELECT так что ли ? Не проверял |
Цитата (Kusss @ 31.01.2018 - 21:33) |
Я не знаю как решить эту задачку. Если использовать HAVING COUNT(g.goodid) > 1, данные группируются. и выводиться только одна строка |
Цитата (SnowWind @ 31.01.2018 - 23:42) |
Так даже если убрать WHERE (p.price2 / p.price1) > 1.05 оставив HAVING COUNT(g.goodid) > 1 всё равно почему-то выводится 1 строка, хоть таких записей 2 |
select g.goodid, g.name, concat(c2.name, '::', p2.price1) as price1, concat(c1.name, '::', p1.price2) as price2
from price p1
join price p2 on (p1.goodid = p2.goodid and p1.countryid <> p2.countryid and (p1.price2 / p2.price1 > 1.05) )
join good g on (g.goodid = p1.goodid)
left join country c1 on p1.countryid = c1.countryid
left join country c2 on p2.countryid = c2.countryid ;
goodid |name |price1 |price2 |
-------|-----------|------------|-----------|
1 |сковородка |россия::100 |китай::110 |