推 PTTLSboy: GROUP_CONCAT( CONCAT( b.p_name, b.p_standard ) ) 11/25 20:32
→ PTTLSboy:最後面再加上 GROUP BY a.yco_cid 11/25 20:32
→ PTTLSboy:b.p_name 是品名 b.p_standard是規格 a是訂單 b是訂單細 11/25 20:33
→ PTTLSboy:更正一下,剛沒看到還有yos_id要加上 11/25 20:59
→ PTTLSboy:group_concat(concat(cast(b.yos_id as char),'-',b.p_na 11/25 21:04
→ PTTLSboy:me,'-',b.p_standard) order by b.yos_id asc) 11/25 21:05
→ shihyanyu:謝謝PTTLSboy大人~我去試看看 11/26 13:52
> -------------------------------------------------------------------------- <
作者: shihyanyu (樂施者所求如意) 看板: PHP
標題: Re: [請益] 資料表關聯
時間: Mon Nov 26 15:15:31 2012
謝謝PTTLSboy大人教的這個函數, 但是不知道是不是我資料集寫得不正確
訂單細節是顯示了...可是原本訂單的重複區域變成沒有作用
加了GROUP_CONCAT以後 yco_id=1的訂單細節欄位可以正常顯示
可是也只顯示yco_id=1那筆訂單 然後訂單編號2,3就不顯示了@@
把我的SELECT語法丟到PHPMyAdmin也是只跑出一筆紀錄...?????
┌───┬────┬───────────────────┬────┐
│yco_id│yco_cid │ 訂 單 細 節 │收件地址│
├───┼────┼───────────────────┼────┤
│ 1 │ y01234 │<?php echo $row_Recordset1['pname'];?>│ │
│ │ │29-小熊維尼手機殼-泡泡款 │ │
│ │ │32-HELLO KITYY -粉藍款 │ │
│ │ │64-方孔點點洞洞殼-紅色 │ │
│ │ │ │ │
├───┼────┼───────────────────┼────┤
│ 2 │ y01235 │61-NOTE2 保護套AA-香檳色 │ │
│ │ │ │ │
├───┼────┼───────────────────┼────┤
│ 3 │ y01236 │12-xxxx-yyyy │ │
│ │ │49-sdsds-fgfgddf │ │
│ │ │ │ │
└───┴────┴───────────────────┴────┘
我的資料集大概像這樣:
$query_Recordset1 =
"SELECT yco_id, yco_cid, yco_recev, yco_mobile, yco_add,
yos_id, yos_cid, yos_pcolor, yos_num, yos_deal,
GROUP_CONCAT(yos_pname SEPARATOR '<BR>') AS pname
FROM ybids LEFT JOIN ybidorders ON yos_cid = yco_cid
WHERE yco_deal LIKE '交易進行中' ORDER BY yco_id DESC";
可以拜託各位大人再給我一些提示嗎?感激不盡!
※ 引述《shihyanyu (樂施者所求如意)》之銘言:
: 我想把訂單詳細內容拉出來顯示在訂單的重複區域裡 像這樣:
: ┌───┬────┬────────────┬────┐
: │yco_id│yco_cid │ 訂 單 細 節 │收件地址│
: ├───┼────┼────────────┼────┤
: │ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │
: │ │ │29-小熊維尼手機殼-泡泡款│ │
: │ │ │64-方孔點點洞洞殼-紅色 │ │
: │ │ │95-米妮按鍵貼-NULL │ │
: │ │ │ │ │
: │ │ │ │ │
: └───┴────┴────────────┴────┘
: 推 PTTLSboy: GROUP_CONCAT( CONCAT( b.p_name, b.p_standard ) ) 11/25 20:32
: → PTTLSboy:最後面再加上 GROUP BY a.yco_cid 11/25 20:32
: → PTTLSboy:b.p_name 是品名 b.p_standard是規格 a是訂單 b是訂單細 11/25 20:33
: → PTTLSboy:更正一下,剛沒看到還有yos_id要加上 11/25 20:59
: → PTTLSboy:group_concat(concat(cast(b.yos_id as char),'-',b.p_na 11/25 21:04
: → PTTLSboy:me,'-',b.p_standard) order by b.yos_id asc) 11/25 21:05
: → shihyanyu:謝謝PTTLSboy大人~我去試看看 11/26 13:52
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.3.21
※ 編輯: shihyanyu 來自: 118.170.3.21 (11/26 15:26)
> -------------------------------------------------------------------------- <
作者: yuleen123 (.......................) 看板: PHP
標題: Re: [請益] 資料表關聯
時間: Mon Nov 26 19:59:04 2012
※ 引述《shihyanyu (樂施者所求如意)》之銘言:
: 想請教各位大大 有沒有可能把主資料表跟子資料表一起顯示在一個重複區域
: 我有兩個資料表
: 1. ybids 訂單資料表
: ┌───┬────┬────┐
: │yco_id│yco_cid │收件地址│
: └───┴────┴────┘
: 主鍵 INDEX
: 2. ybidorders 訂單細節資料表
: ┌───┬────┬────┬────┐
: │yos_id│yos_cid │商品名稱│顏色款式│
: └───┴────┴────┴────┘
: 主鍵 INDEX
: 其中ybids訂單資料表是基本的收件資訊等等
: 訂單詳細內容 訂了那些商品 顏色款式等放在ybidorders
: 兩個資料表以yco_cid=yos_cid做關聯
: (也就是一個yco_cid對應多個訂單細節)
: 我想把訂單詳細內容拉出來顯示在訂單的重複區域裡 像這樣:
: ┌───┬────┬────────────┬────┐
: │yco_id│yco_cid │ 訂 單 細 節 │收件地址│
: ├───┼────┼────────────┼────┤
: │ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │
: │ │ │29-小熊維尼手機殼-泡泡款│ │
: │ │ │64-方孔點點洞洞殼-紅色 │ │
: │ │ │95-米妮按鍵貼-NULL │ │
: │ │ │ │ │
: │ │ │ │ │
: └───┴────┴────────────┴────┘
我的作法會像下面這樣
select
a.yco_id,
a.yco_cid,
concat( b.yos_id, '-', b.商品名稱, '-', b.顏色款式 ) as detail,
a.收件地址
from
ybids as a, ybidorders as b
where
a.yco_cid = b.yos_cid
order by a.yco_id asc
如果你的 yos_id 的型態是 INTEGER 的話要先轉成字串再塞到 concat 中
補充說明:
跑出來的資料會像下面這樣
┌───┬────┬────────────┬────┐
│yco_id│yco_cid │detail │收件地址│
├───┼────┼────────────┼────┤
│ 1 │ y01234 │yos_id-商品名稱-顏色款式│ │
│ 1 │ y01234 │29-小熊維尼手機殼-泡泡款│ │
│ 1 │ y01234 │64-方孔點點洞洞殼-紅色 │ │
│ 1 │ y01234 │95-米妮按鍵貼-NULL │ │
│ │ │ │ │
│ │ │ │ │
└───┴────┴────────────┴────┘
PHP 撈資料出來後要自己處理表格合併的工作
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.36.40
※ 編輯: yuleen123 來自: 114.41.36.40 (11/26 20:04)
推 shihyanyu:謝謝yuleen123大人~我在試看看!! 11/26 23:27