MySQL запрос JOIN не присоединяется - PullRequest
0 голосов
/ 24 января 2012

Хорошо, я думаю, что я пропустил группу или что-то, в основном то, что мне нужно добавить, но не знаю, как, как мне сделать, я предлагаю добавить строки или присоединиться к ним.

вот мой запрос

SELECT * FROM approved_business, business_stores, Real_Cash_Offers 
WHERE approved_business.id = business_stores.business_id 
    AND Real_Cash_Offers.storeid IN (business_stores.storeid) 
ORDER BY `approved_business`.`id` ASC

здесь вывод

1249    Jaggers Hair and Beauty 2012-01-22 19:11:05 1249    1   6139646071  112 Bridge Street   Eltham  1   3095    Let Jagger Hair and Beauty set you up with the hot...   1372    1   50|5    2012-01-22 19:11:05
1249    Jaggers Hair and Beauty 2012-01-22 19:11:05 1249    1   6139646071  112 Bridge Street   Eltham  1   3095    Let Jagger Hair and Beauty set you up with the hot...   1372    1   100|10  2012-01-22 19:11:05
1249    Jaggers Hair and Beauty 2012-01-22 19:11:05 1249    1   6139646071  112 Bridge Street   Eltham  1   3095    Let Jagger Hair and Beauty set you up with the hot...   1372    1   250|30  2012-01-22 19:11:05

Я хочу, чтобы предложения стали массивом или чем-то таким, чтобы была только одна строка.

НОВЫЙ КОД

Обнаружена ошибка в JOIN КОД SQL

SELECT * FROM approved_business, business_stores, Real_Cash_Offers 
WHERE approved_business.id = business_stores.business_id 
    AND  Real_Cash_Offers.business_id = approved_business.id  
    AND Real_Cash_Offers.storeid = business_stores.storeid 
ORDER BY `approved_business`.`id` DESC

OUTPUT

id  tradingname listed  business_id storeid phone   street  suburb  state   postcode    discription business_id storeid offer   tstamp
2582    Deeply Skin Medi Spa    2012-01-22 19:11:05 2582    1   0388224001  Suite 3 , 616 Park Rd   Park Orchard    1   3114        2582    1   370|5   2012-01-22 19:11:05
2582    Deeply Skin Medi Spa    2012-01-22 19:11:05 2582    1   0388224001  Suite 3 , 616 Park Rd   Park Orchard    1   3114        2582    1   570|10  2012-01-22 19:11:05
2582    Deeply Skin Medi Spa    2012-01-22 19:11:05 2582    1   0388224001  Suite 3 , 616 Park Rd   Park Orchard    1   3114        2582    1   1570|15 2012-01-22 19:11:05

Ответы [ 3 ]

0 голосов
/ 24 января 2012

Вы должны использовать функцию GROUP_CONCAT(), чтобы объединить результаты в один ряд.

Например:

SELECT GROUP_CONCAT(Real_Cash_Offers.offer)
FROM ...
0 голосов
/ 24 января 2012

Вы пытаетесь объединить полученные строки запроса. Это не является частью стандарта SQL (ANSI), но вы можете использовать специальную функцию СУБД для достижения этой цели. Для MySQL это будет GROUP_CONCAT - см. Можно ли объединить несколько строк MySQL в одно поле?

SELECT business_stores.business_id, business_stores.store_id, GROUP_CONCAT(Real_Cash_Offers.offer) as offers
FROM approved_business
INNER JOIN business_stores
  ON approved_business.id = business_stores.business_id 
INNER JOIN Real_Cash_Offers
  ON Real_Cash_Offers.storeid = business_stores.storeid
GROUP BY business_stores.business_id, business_stores.store_id
ORDER BY `approved_business`.`id` ASC
0 голосов
/ 24 января 2012

Попробуйте group_concat

SELECT id, group_concat(offer)  FROM approved_business, business_stores, Real_Cash_Offers 
WHERE approved_business.id = business_stores.business_id 
    AND Real_Cash_Offers.storeid IN (business_stores.storeid) 
GROUP BY id
ORDER BY `approved_business`.`id` ASC
...