2011-09-24 3 views
1

나는 내 대화와 함께 테이블을 얻었고 나는 대화를 알리는 주제로 나열해야한다. 따라서 내가 보낸 사람이거나받는 사람이라면, 그것을 한 대화로 나열해야합니다. 그래서 2 명의 사용자 사이에 어떤 역할을했는지는 중요하지 않습니다.SQL 쿼리에 문제가 있습니다. 내 결과를 구별 할 필요가있다


내가 가지고 그래서 경우 :

1, me, mom, "hello mom, I'm good. How are you?", 1, 23/09-2011 
2, mom, me, "hello son, how are you?", 1, 22/09-2011 
3, me, dad, "hello dad, how are you?", 1, 20/09-2011 

내가 이런 식으로 보여주고 싶은 :

between You and Mom - Hello mom... - 23/09-2011 - 2 messeges 
between You and Dad - Hello dad... - 20/09-2011 - 1 message 

내가 볼 수 없습니다 m을 눌러 쿼리를 찾습니다. 아마도 DISTINCT와 함께 뭔가.

내가 지금 일하고있어, 너희들이

좋아 PHP

$sql = mysql_query(
    "SELECT `fra`, `til`, `besked`, `dato`, `set`, `id` 
    FROM fisk_beskeder 
    WHERE til = ".$userid." 
     OR fra = ".$userid." 
    ORDER BY id DESC") 
or die(mysql_error()); 

업데이트 : 나를 도와

업데이트

CREATE TABLE IF NOT EXISTS `fisk_beskeder` (
    `id` int(11) NOT NULL auto_increment, 
    `fra` int(11) NOT NULL, 
    `til` int(11) NOT NULL, 
    `dato` varchar(50) NOT NULL, 
    `set` int(11) NOT NULL default '0', 
    `besked` text NOT NULL, 
    `svar` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; 

수 있기를 바랍니다. 필요한 것은 그룹에서 최신 데이터를 가져 오는 것입니다.

SELECT count(id), `id`, `fra`, if(a.fra = $cfg_brugerid, a.til, a.fra) AS other, `til`, `besked`, `dato`, `set` 
FROM fisk_beskeder a 
WHERE fra = $cfg_brugerid OR til = $cfg_brugerid 
GROUP BY other 
ORDER BY a.id DESC 
+2

정말 *를 수행 * 문자열 목록이 아니라 단지보다 같은 일반적인 결과 세트로 출력을해야합니까? PHP에서 출력 포맷을 수행 할 수 있습니까? –

+0

테이블 구조를 보여줘야합니다. 또한, 지금까지 시도한 것을 게시하십시오. – Bojangles

+0

PHP에서 모든 포맷 작업이 어렵습니다. 미안하지만. 난 그냥 SQL에서 데이터가 필요합니다 – Holsteinkaa

답변

1

아마이 :

SELECT COUNT(msg), msg, a.date, if(a.from ='me', a.to , a.from) as otherPerson 
FROM table a 
WHERE a.from = 'me' or a.to = 'me' 
GROUP BY otherPerson 
+0

작동하지 않습니다. "as if"근처의 구문 오류 – Holsteinkaa

+0

쿼리에서 if 문을 사용할 때 누구나 구문 오류가 발생하는 이유를 알고 있습니다. – Holsteinkaa

+0

나는 열 def와 열 이름을 잘못된 순서로 넣었 기 때문에 ... fixed ... – Zak

1

같은 것.

SELECT COUNT(a.msg), a.msg, a.date 
FROM table a, table b 
WHERE a.from = b.from 
AND a.to != b.to 
GROUP BY a.from 
+0

그게 효과가 없을 것입니다 ... "에서"and "to"는 어느 방향 으로든 될 수 있습니다. –

+0

음 ... 모든 메시지가 들어있는 테이블이 하나 밖에 없습니다. 그룹별로 볼 수 있습니다. – Holsteinkaa

관련 문제