2011-09-24 63 views
1

我得到了表格與我的談話,我需要列出談話作爲主題。所以如果我是發件人或收件人,它應該將其列爲一個對話。因此,在兩個用戶之間,他們獲得哪個角色並不重要。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的東西。

我希望你們能幫助我了:)

更新

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 ; 

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()); 

更新

好了,它的工作現在。我只需要從組中獲取最新的數據。

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和列名..固定... – 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

這將無法正常工作......「from」和「to」可以是任意方式。 –

+0

嗯..我只有一張桌子,裏面有所有信息。 – Holsteinkaa