2012-02-02 1 views
0

私は例として以下の表を持っています。同じ列の値を持つ複数の行が必要なときにLIMITを使用してSELECTする方法はありますか?

id uid car 
1 3 BMW 
2 3 AUDI 
3 3 JEEP 
4 5 MERC 
5 6 BMW 
6 6 FIAT 

今、私は唯一の2のユーザーのためではなく、すべての車を取得したいと思いますが、彼らが持っているどのように多くの車を知りません。彼らはすべて1台の車しか持っていなかったので、私はただLIMIT 3を行うことができましたが、どのようにしてすべての車を得ることができますか?

+0

をテーブル名を変更することを忘れないで行うことができますあなたが達成しようとしていることについてもっと詳しく教えてください。 –

+0

多分group_concatがお手伝いできますか? – ajreal

+0

@KamranAli私がしてきたのは、まずユーザーごとに1台の車しか表示しないユーザーのリスト(jQuery付き)を取得することです。ユーザーをクリックすると、彼のすべての車が見えます。私は複数のクエリでこれを行うことができますが、むしろこれをすべて1つにします。 (PS、実際のアプリケーションは説明するのが少し難しいので、例として車を使用しています) – Glooh

答えて

1

EDIT

2人のユーザーが不明である場合は、MySQL GROUP_CONCAT

$query = mysql_query("SELECT uid, GROUP_CONCAT(car) as cars FROM tablename GROUP BY uid ORDER BY uid ASC LIMIT 0,2"); 
while ($get = mysql_fetch_array($query)) { 
    $userid = $get['uid']; 
    $result = explode(",", $get['cars']); 
    echo '<h2>User #' . $userid . ' owns the following cars:</h2>' . "\n"; 
    echo '<ul>' . "\n"; 
    foreach ($result as $car) { 
    echo ' <li>' . $car . '</li>' . "\n"; 
    } 
    echo '</ul>' . "\n"; 
} 

を使用することができます注:SELECTクエリで

+0

ありがとうございます。しかし、これは解決策ではありません。なぜなら私はユーザーをわかりません。 – Glooh

+0

@Glooh - Ok!ただ私の答えを更新しました。まさにあなたが探しているものでなければなりません:) – Tom

+0

素晴らしい!正確に私が必要なもの!私はそれをテストし、フロントエンドでいくつか余分なものを行うことができますが、少なくとも私は今、1つのクエリを持っています。ありがとう!! – Glooh

関連する問題