 |
query ไม่ถูกต้อง ทำยังไงดี สวัสดีคะ หนูเขียน query แบบนี้ค่ะ |
|
 |
|
|
 |
 |
|
เอ่อ ใช้ where ด้วยวิธี '=' อย่างนี้ ก็อยู่ที่ข้อมูลแล้วครับ
ถ้าอยากได้ข้อมูลที่ใหม่ล่าสุด ก็ระบุข้อมูลที่ใหม่ล่าสุดใส่ตัวแปรทั้งสามครับ
ลองแปลเป็นไทยดูจาก query นะ
มันบอกว่าจะเอาข้อมูล species.species_id,species.species_name,transfer.gove_quantity
โดยให้ transfer.trans_date = '$trans_date'
และ transfer.project_id = '$project_id'
และ transfer.warehouse_id = '$warehouse_id'
แล้วมาบอกว่าไม่ถูก ก็แปลว่าคุณระบุค่าในตัวแปรทั้ง 3 ไม่ถูกเองสิ
query อย่างนี้ไม่น่าจะได้ result มาหลายบรรทัด ยิ่งมี group by ยิ่งเป็นการบอกว่าให้ออกมา row เดียว
ลองคิดใหม่ดูครับ หรือไม่ก็ลองเอาเนื้อข้อมูลมาดูว่ามีอยู่ยังไง แล้วอยากได้แบบไหนจะได้ช่วยกันคิดได้ครับ
|
 |
 |
 |
 |
Date :
2010-01-15 21:13:24 |
By :
salapao_codeman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือข้อมูลอ่ะคะมันเป็นแบบซ่ำกัน
ฐานข้อมูลเปงงี้ค่ะ
ตาราง transfer

ตาราง species

จะดึงให้ได้ว่ามีข้าวเท่าไร แล้วที่โอนล่าสุดเท่าไรอ่ะคะ
ซึ่งข้าวก้อจะซ่ำกันตาม db ที่แทรกไว้ตามฟิลล species_id ส่วนปริมาณคือฟิลล gove_quanty
|
 |
 |
 |
 |
Date :
2010-01-15 21:31:48 |
By :
benzict063 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
SELECT species.species_id,species.species_name,sum(transfer.gove_quantity)
FROM species
left join transfer
on (species.species_id = transfer.species_id)
WHERE transfer.trans_date = '$trans_date'
AND transfer.project_id = '$project_id'
AND transfer.warehouse_id = '$warehouse_id'
GROUP BY species.species_id
ORDER BY transfer.id DESC
ไม่ได้ย่อชื่อตารางให้ขี้เกียจแก้หมด หวังว่าคงใช่ตามที่ผมคิดน่ะครับ
|
 |
 |
 |
 |
Date :
2010-01-15 21:40:01 |
By :
mee079 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อะไรเป็นตัวบอกว่าเป็นข้อมูลล่าสุดเหรอครับ col trans_date เป็น col Date อย่างเดียวเปล่าครับ
ลองดูของคุณ mee ครับว่าถูกอย่างที่ต้องการหรือยัง ถ้าดูจากข้อมูลแล้วมันน่าจะออกมา ทุก species_id ของในวันเดียวกันอยู่นะครับ แล้วก็จะยังซ้ำกันอยู่
ให้เดานะ สิ่งที่บอกว่าข้อมูลล่าสุดใช่ col ID ของ table transfer หรือเปล่า
จะเห็นว่า id ที่ 834 841 848 species_id เดียวกัน ถ้าใช้ query ของคุณ mee ก็จะออกมา 3 บรรทัดนี้อ่ะครับ
ที่ต้องการล่าสุดนี่หมายถึงให้มันออกมาแค่ที่เป็นค่า id ล่าสุดของแต่ละ species_id งี้เปล่าครับ
|
 |
 |
 |
 |
Date :
2010-01-15 22:11:25 |
By :
salapao_codeman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

ข้อมูลตอนนี้มีสามชุดดังกรอบสีแดงนะคะ
จะเหงได้ว่าข้อมูลชุดที่ 1 และ 3 จะมี warehouse_id, trans_date,project_id มีข้อมูลเหมือนกันตามกรอบสีน้ำเงิน
ซึ่งหนูใช้ warehouse_id, trans_date,project_id เป็นตัวดึงข้อมูลอ่ะคะ
ต้องการที่จะให้ข้อมูลชุดที่3 แสดงออกมา แสดงออกมาทั้งชุดเรยอ่ะคะ
ต้องทำยังไงอ่ะคะ
ของคุณ mee ลองแล้ว ก้อไม่ได้อ่ะคะ
รบกวนด้วยนะคะ
|
 |
 |
 |
 |
Date :
2010-01-15 23:17:40 |
By :
benzict063 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในเมื่อข้อมูลชุดที่ 1กับ 3 มันเหมือนกัน และใช้เงื่อนไขเดียวกัน มันก็เลยเป็นชุดเดียวกัน
สรุปผมงง ไปแล้ว จะ sum หาข้อมูล
มันบอกว่าจะเอาข้อมูล species.species_id,species.species_name หรือจะ select มันออกมาเฉยๆ
|
 |
 |
 |
 |
Date :
2010-01-16 10:30:18 |
By :
mee079 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จะ select ออกมาเฉยๆอ่ะคะ
เอาล่าสุดอ่ะคะ
พอทำได้มั๋ยคะ
|
 |
 |
 |
 |
Date :
2010-01-16 11:24:13 |
By :
benzict063 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|