關聯查詢 |
|
sam
更新時間:2013/3/7 下午 01:17:43 |
|
SELECT `album`.`album_id` , `album`.`album_date` , `album`.`album_location` , `album`.`album_title` , `album`.`album_desc` , `albumphoto`.`ap_picurl`, count( `albumphoto`.`ap_id` ) AS `albumNum` FROM `album` LEFT JOIN `albumphoto` ON `album`.`album_id` = `albumphoto`.`album_id` GROUP BY `album`.`album_id` , `album`.`album_date` , `album`.`album_location` , `album`.`album_title` , `album`.`album_desc` ORDER BY `album_date` DESC 請問上面這段在程式樂活學-網路相簿的程式碼, 同一個album_id下有多張照片, 為何只會查詢到第一張相片, 而不是此album_id中的全部照片呢?
|
|
|
|
文淵閣工作室
更新時間:2013/3/8 上午 08:47:15 |
|
這是關聯式SQL, 在欄位中有一欄 count( `albumphoto`.`ap_id` ) AS `albumNum` 因為我們要計算在這個分類中子資料表中所屬的照片有多少,所以我們用 Group By 將其他的欄位群組起來,成為一筆資料。 如果你希望有多張照片, 您要先去掉剛才 count(....) 這個欄位 另外,再將 Group By 的設定拿掉即可。 |
|
|
|
sam
更新時間:2013/3/9 下午 07:41:27 |
|
謝謝老師的解說,我了解了。 再請問如果我有一樣產品名稱叫做"上衣"有分3個顏色,那是要把顏色單獨建一個資料表再用關聯查詢嗎? 還是應該在原資料表增加一個顏色的欄位,然後新增3筆"上衣"的資料,但顏色欄位輸入不同顏色呢? |
|
|
|
文淵閣工作室
更新時間:2013/3/11 上午 08:30:05 |
|
其實你說的二種方式都有人做, 重點是要視到底顏色的種類會不會越來越多。 如果會,建議還是製作一個表來關聯較為方便。 |
|
|
|
sam
更新時間:2013/3/27 下午 03:11:20 |
|
老師您好: 我想要用order排序成下面的狀況: 01 02 11 21 101
把欄位設為數值,則不能顯示01; 把欄位設為文字,則101會排在11前面 請問有什麼辦法嗎? |
|
|
|
文淵閣工作室
更新時間:2013/3/28 上午 08:55:03 |
|
您好, 您應該把欄位設為數值型態, 因為該欄來就是數值型態, 您的考量只是在顯示時要呈現的格式。
所以您應該是在顯示時, 套上要顯示的格式就可以解決,以下我提供一個大概的格式方式讓您參考:
$sn1 = 1; $sn2 = 11; echo sprintf("%02d",$sn1); //輸出結果 01 echo sprintf("%02d",$sn2); //輸出結果 11 |
|
|
|
|
|
|