2017-08-12 10 views
0

表名client私は2次元テーブルを持っていますが、どのようにデータを次のように持ってくることができますか?

id name  mail 
1 semsi pasa [email protected] 
2 demir ali [email protected] 

表名registerid

fields clientid values 
4  1  94858 
5  1  3493848484 
4  2  32423 
5  2  4324242342 

foreach($user as $key => $val){ 
    echo "one row:".$user[$key]['name']." ".$user[$key]['mail']." ".$user[$key]['values']."<br>"; 
} 

それは、画面上の

semsi pasa [email protected] 948583493848484 
demir ali [email protected] 324234324242342 
+0

テーブルを結合するには、SQLの簡単な「JOIN」が必要です。 – Canis

答えて

3

I Tのようになります。

select c.name, c.mail, group_concat(r.values order by fields separator '') 
from client c join 
    registerid r 
    on c.id = r.clientid 
group by c.id; 

注:あなたが値の間に別のを望むことを決定した場合、その後、''以外のものを使用しますが、集約を探しているヒンク。

+0

フィールドの値5と4にそれらの値が必要です。 – SemsiPasa

0

あなたがそうあなたは、これは私がやった方法で、

select c.name, c.mail, r.fields, group_concat(r.values order by fields separator '') 
from client c join 
    registerid r 
    on c.id = r.clientid 
group by c.id; 
0
SELECT GROUP_CONCAT(tt.value order by tt.fieldid = 4 separator '') FROM tc JOIN tt ON tc.id = tt.relid where tt.fieldid IN ('4','5') group by tc.id 

感謝をquery-取得するには、上記の回答の「フィールド」を追加し、また

をフィールドの値を取得する必要がありますよう。

関連する問題