0
을 MySQL로 어떻게 그 두 테이블GROUP_CONCAT
id_of_orders
id_order| time | username | price
35 |2013-08-11 15:03:01| |0.00
36 |2013-08-21 12:43:31|skata |0.00
37 |2013-08-21 12:43:55|skata |12.00
주문이
order_id | product | ulika
35 |frento |zaxari,fountoukia,troufa
35 |frento |zaxari,kakao
35 |frento |
36 |frapes |zaxari
37 |frento |
35 |frapes |
내가 사용 를 포함하는 모든 레코드의 데이터를 반환하는 특정 제품에 대해 원하는 GROUP_CONCAT하지만 제품의 모든 값을 반환하지는 않습니다.
if(!empty($_SESSION['proions'])){
$query= "SELECT i.id_order, i.time, i.username, i.price, GROUP_CONCAT(o.product) as PRO
FROM id_of_orders i INNER JOIN orders o
ON i.id_order = o.order_id
WHERE o.product = '$_SESSION[proions]'";
$query .=" GROUP BY i.id_order" ;
$result = mysql_query($query);
}
예를 들어 '프렌치'가 들어있는 레코드의 데이터를 수집하려고하면 결과가 나타납니다. 나는 제품 'frapes'을 놓친다.
35: -> 2013-08-11 15:03:01 0.00 frento,frento,frento
37: -> 2013-08-21 12:43:55 skata 12.00 frento
당신이 여기 필요하지 않습니다 group_concat 당신이 원하는 것 같아요 다음과 같은 쿼리를 사용할 수 있습니다 : SELECT * FROM orders, id_of_orders where orders.id_order = id_of_orders.order_id and id_of_orders.order_id in (select order_id FROM orders where product = '프렌 츠'); 죄송 \t orders.id_order = id_of_orders.order_id \t 및 orders.product을 id_of_orders, 당신은) (내가이 일을 시도 – talsibony
을에서 사용할 수 있지만 "= 모든 \t $ 쿼리에서 일 주문 SELECT * FROM하지 않는 것 같다 = '$ _SESSION [proions]' " –
* inner * join이 아닌 * outer *를 사용해야합니다. [SQL 결합의 시각적 설명] (http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)을 참조하십시오. – eggyal