 |
|
|
 |
 |
|
เอา SQL มาแปะหน่อยครับ
|
 |
 |
 |
 |
Date :
2018-02-02 15:03:48 |
By :
OOP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Select *
From ศูนย์
Left join ตารางกรอกขัอมล
On ศูนย์.id = ตารางกรอกข้อมูล
|
 |
 |
 |
 |
Date :
2018-02-02 15:57:08 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

นี่ครับดึงมาจาก view ครับ
|
 |
 |
 |
 |
Date :
2018-02-04 18:57:31 |
By :
ไนน์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอา text มา paste ครับ ง่ายๆ ไม่ต้อง capture มา ก๊อปมาแก้ไขไม่ได้
|
 |
 |
 |
 |
Date :
2018-02-04 19:23:58 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
01. $sql = " SELECT id,
02. sm_pla_seed_varieties,
03. varieties_id,
04. center_name,
05. sm_pla_seed_sources,
06. DATE_FORMAT(last_update, '%Y/%m/%d %H:%i:%s' ) as last_update,
07. (SELECT GROUP_CONCAT(DATE_FORMAT(date_date, '%d/%m/%Y' ) ORDER BY date_date) FROM db_data_subdate WHERE data_id = db_data.id AND date_type = 1 GROUP by data_id) as date_sapling,
08. (SELECT GROUP_CONCAT(DATE_FORMAT(date_date, '%d/%m/%Y' ) ORDER BY date_date) FROM db_data_subdate WHERE data_id = db_data.id AND date_type = 2 GROUP by data_id) as date_plant,
09. s_pla_plant_area,
10. sm_pla_plant_note
11. FROM db_data
12. WHERE sm_cor_year = '".$sm_cor_year."'
13. AND sm_cor_season = '".$sm_cor_season."'
14. AND type= '1'
";
|
 |
 |
 |
 |
Date :
2018-02-04 20:15:07 |
By :
1173743579435910 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หลักการ ต้องเอา ตารางศูนย์ มาเป็น primary table แล้วใช้ left join กับตารางข้อมูลที่มากรอก
ถ้า db_data นี่เป็นตารางศูนย์
และ db_data_subdate นี่เป็นตารางข้อมูลที่ศูนย์มากรอก
ถ้าใช่ โค๊ดที่ทำอยู่ก็น่าจะถูกต้อง แต่ไม่ถูกเรื่อง performance ใช้ subquery ใน select clause เปลืองทรัพยากรมากไป
statement ที่ควรจะใช้
Code (SQL)
01. SELECT id,
02. sm_pla_seed_varieties,
03. varieties_id,
04. center_name,
05. sm_pla_seed_sources,
06. DATE_FORMAT(last_update, '%Y/%m/%d %H:%i:%s' ) as last_update,
07. s1.gc as date_sapling,
08. s2.gc as date_plant,
09. s_pla_plant_area,
10. sm_pla_plant_note
11. FROM db_data d
12. left join (
13. SELECT data_id, GROUP_CONCAT(DATE_FORMAT(date_date, '%d/%m/%Y' ) ORDER BY date_date) gc
14. FROM db_data_subdate
15. WHERE date_type = 1
16. GROUP by data_id
17. ) s1 on s1.data_id=d.id
18. left join (
19. SELECT data_id, data_type, GROUP_CONCAT(DATE_FORMAT(date_date, '%d/%m/%Y' ) ORDER BY date_date) gc
20. FROM db_data_subdate
21. WHERE date_type = 2
22. GROUP by data_id
23. ) s2 on s2.data_id=d.id
24.
25. WHERE sm_cor_year = 2560
26. AND sm_cor_season = 1
27. AND type= '1'
แต่ถ้า db_data คือตารางที่ ศูยน์มากรอก และ db_data_subdate เป็นตาราง detail ที่ศูนย์มากรอก
ต้องเอา ตารางศูนย์ มาเป็น primary table แล้วใช้ left join กับตารางข้อมูลที่มากรอก
Code (SQL)
1. select c.* , d.*
2. from table_center c
3. left join (
4. ## sql statement ของ จขกท นำมาใส่ตรงนี้
5. ) as s on c. name = s.center_name
|
 |
 |
 |
 |
Date :
2018-02-04 21:19:58 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|