Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ช่วยเรียบเรียง เงื่อนไขการใช้คำสั่ง select หน่อยครับ



 

ช่วยเรียบเรียง เงื่อนไขการใช้คำสั่ง select หน่อยครับ

 



Topic : 034990



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์




Code (PHP)
 (select *from tb_register,tb_member,tb_activity where tb_register.id_act = tb_activity.id_act and tb_register.id_member=tb_member.id_member and tb_activity.id_act ='1') 



จากโค๊ดที่ผมลองเขียนจะเป็นการฟิกค่าจากการค้นหา คือต้องเลือกสมาชิก ที่ลงทะเบียนกิจกรรมที่มีไอดีเป็น1เท่านั้น

ถ้าต้องการทราบว่า กิจกรรมที่เป็น1นี้ มีใครไม่เข้าร่วมบ้าง จะเปลี่ยนเงื่อนไขเป็นแบบไหนดีครับ

tb_member = ตารางสมาชิก

tb_activity = ตารางกิจกรรม

tb_register = ตารางที่สมาชิกลงทะเบียนกิจกรรม



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-11-28 00:54:45 By : iieszz View : 1367 Reply : 22
 

 

No. 1



โพสกระทู้ ( 4,759 )
บทความ ( 8 )



สถานะออฟไลน์


select * from tb_member tm inner join tb_register tr on tb.member_id = tr.member_id
where tr.id_act != '1'

มั้ง ไม่รู้ว่า tb_register มีอะไรบ้าง






Date : 2009-11-28 01:02:06 By : mr.v
 


 

No. 2



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


tb_register จะมี

id_reg = คีย์หลักการลงทะเบียน

id_member = ไอดีสมาชิกที่ลงทะเบียน

id_act = ไอดีกิจกรรมที่ลงทะเบียน

ประมาณนี้ครับ

Code (PHP)
SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.id_member = tr.id_member
WHERE tr.id_act != '1'


ผลลัพท์ที่ได้คือ จะแสดงผู้ที่ลงทะเบียนกิจกรรมทั้งหมด และกิจกรรมนั้นต้องไม่มีไอดีเท่ากับ1

ที่ผมต้องการ คือ แสดงรายชื่อผู้ที่ไม่เข้าร่วมกิจกรรมที่1
Date : 2009-11-28 01:25:02 By : iieszz
 

 

No. 3



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


Code (PHP)
select*from tb_member where not exists(select *from tb_register,tb_member,tb_activity where tb_register.id_act = tb_activity.id_act and tb_register.id_member=tb_member.id_member and tb_activity.id_act ='1') 


ลองใช้คำสั่งนี้ใน phpMyAdmin แต่ค่าที่ออกเป็น

MySQL คืนผลลัพธ์ว่างเปล่ากลับมา (null / 0 แถว)

ทั้งๆที่สมาชิกแต่ละคนไม่ได้ลงทะเบียนกิจกรรมทุกกิจกรรม
Date : 2009-11-28 10:28:32 By : iieszz
 


 

No. 4

Guest


จากโค๊ดด่านบนก็ถูกแล้วนิครับ

SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.id_member = tr.id_member
WHERE tr.id_act != '1'

แสดงรายชื่อ ผู้ที่ไม่เข้าร่วมกิจกรรมที่ 1

ก็ถูกแล้วนิครับ หรือว่ายังงัยหรอครับ
Date : 2009-11-28 10:41:30 By : martman26
 


 

No. 5



โพสกระทู้ ( 223 )
บทความ ( 0 )



สถานะออฟไลน์


งง กับ คำ ถาม แล้ว ฟิลด์ ไหน ที่ จะ บ่ง บอก ว่า เค้า ผู้ นั้น ไม่ เข้า ร่วม ล่ะ ครับ อ ธิ บาย หน่อย
Date : 2009-11-28 11:05:33 By : chubichane
 


 

No. 6



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.id_member = tr.id_member
WHERE tr.id_act != '1'

จะเป็นการแสดงรายชื่อสมาชิกที่เข้าร่วมกิจกรรมอื่น(รวมๆกัน) โดยที่ไม่มีกิจกรรมที่ 1รววมอยู่ด้วย

ที่อยากได้ คือ แสดงผู้ที่ไม่เข้าร่วมกิจกรรมที่ 1 ออกมาอย่างเดียวเลยครับ(อย่างที่จะให้เป็นครับ)

ฟิลด์ id_act และ id_member ของ ตาราง tb_register = จะบอกว่าใครลงกิจกรรมอะไรไว้บ้าง

ฟิลด์ที่จะบอกว่าใครไม่ได้ลงทะเบียนกิจกรรมอะไร

ก็คือ เมื่อรู้ว่าใครลงกิจกรรมอะไรไว้ ก็นำฟิลด์ id_act ของ ตาราง tb_register ไปเทียบกับ ฟิลด์ id_act ของตารางtb_activity เพื่อหาว่า มีกิจกรรมที่ชื่ออะไรบ้าง ที่สมาชิกแต่ละคนยังไม่ได้ลงทะเบียน ก็จะได้ชื่อของกิจกรรมที่ยังไม่ได้ลงทะเบียนครับ

รู้หลักการแต่ว่า เรียบเรียงเป็นโค๊ดไม่ถูกครับ หรือว่ามีวิธีอื่นที่ง่ายกว่านี้ป่าวครับ
Date : 2009-11-28 11:59:30 By : iieszz
 


 

No. 7



โพสกระทู้ ( 209 )
บทความ ( 0 )



สถานะออฟไลน์


สมมุตินะครับ

มีกิจกรรมอยู่ 4 กิจกรรม

มีสมาชิกอยู 4 คน

คนที่ 1 กิจกรรม 2
คนที่ 2 กิจกรรม 3
คนที่ 3 กิจกรรม 3
คนที่ 4 กิจกรรม 1

ผลลัพท์ ที่คุณ iieszz บอกคือ แสดงผู้ที่ไม่เข้าร่วมกิจกรรมที่ 1 ออกมาอย่างเดียวเลยครับ
Code
SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.mem_id = tr.mem_id
WHERE tr.act_id != '1'


ผลลัพท์ที่ต้องแสดงออกมามันต้องออกแบบนี้หรือเปล่าครับ
[b]
คนที่ 1 กิจกรรม 2
คนที่ 2 กิจกรรม 3
คนที่ 3 กิจกรรม 3
[\b]



หรือต้องการให้แสดงผลออกแบบ

[b]
คนที่ 4 กิจกรรม 1
[\b]

หรือว่ายังงัยลองเขียนผลลัพท์ออกมาดูก่อนนะครับ จะได้ช่วยได้
Date : 2009-11-28 13:29:47 By : martman26
 


 

No. 8



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ผลลัพท์ ที่ผมต้องการ คือ
คนที่ 4 ไม่เข้าร่วมกิจกรรม 1 ครับ

เพื่อจะออกเป็นรายงานว่า มีใครบ้างที่ไม่เข้าร่วมกิจกรรมที่1 นั่นก็คือคนที่4 ครับ



รบกวนหน่อยน่ะครับ งงๆงมๆมา 2 วันแล้ว

Code (PHP)
SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.mem_id = tr.mem_id
WHERE tr.act_id != '1'


ผมลองมาปรับแล้วคีย์
Code (PHP)
(SELECT distinct(tm.id_member) ,tr.id_member,tr.id_act 
FROM tb_member tm
INNER JOIN tb_register tr ON tm.id_member = tr.id_member
WHERE tr.id_act != '1' )


ได้ผลลัพธ์
id_member id_member id_act
1111111111 1111111111 3
1111111111 1111111111 4
2222222222 2222222222 2
2222222222 2222222222 3
4444444444 4444444444 3

*** ไม่มี id_act=1 รวมอยู่ด้วย นั่นก็คือ คนพวกนี้แหละที่ไม่เข้าร่วมกิจกรรมที่1

แต่เปิดดูจากตารางการลงทะเบียน(tb_register)แล้ว มี id_member=1111111111

id_reg id_member id_act id_barcode day_reg
1 1111111111 1 1 2009-11-25 14:48:07
2 2222222222 2 8 2009-11-26 11:04:21
3 1111111111 3 20 2009-11-26 12:44:54
4 2222222222 3 15 2009-11-26 13:09:29
5 4444444444 3 18 2009-11-26 13:19:35
6 1111111111 4 26 2009-11-26 16:22:45


**** จึงเป็นไปไม่ได้ ที่ id_member=1111111111 ยังไม่ได้ลงทะเบียนกิจกรรม id_act =1
Date : 2009-11-28 14:06:25 By : iieszz
 


 

No. 9



โพสกระทู้ ( 223 )
บทความ ( 0 )



สถานะออฟไลน์


งง คนที่ 4 จะไม่เข้าร่วมได้ยังไง ในเมื่อเค้าลงทะเบียน เป็น กิจกรรม 1 อธิบายหน่อย
Date : 2009-11-28 14:36:51 By : chubichane
 


 

No. 10



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ขอโทษที่ครับเข้าใจผิด(งงๆ)

ผลลัพท์ที่อยากได้ คือ
---------------------------
คนที่ 1 กิจกรรม 2
คนที่ 2 กิจกรรม 3
คนที่ 3 กิจกรรม 3
--------------------------- ***แต่คนที่4 อาจถูกเรียกกลับมาแสดงผล ถ้าคนที่4 ลงกิจกรรมอื่นที่ไม่ใช่1 เช่น กิจกรรมที่2,3 ซึ่งมันดูขัดๆกับความเป็นจริง
เพราะว่าเราต้องการแสดง id_member ที่ไม่ลงทะเบียนกิจกรรมที่1 ซึ่งจริงๆคนที่4 ได้ลงทะเบียนไปแล้ว

เนื่องจากหนึ่งคนลงได้หลายกิจกรรม (id_act)

ถ้าเรา select ตรง id_act != 1

มันจะแสดงเฉพาะสมาชิกที่มีรหัสกิจกรรมที่ไม่เท่ากับ1ตรงนี้ใช่ครับ

แต่ปัญหาที่ผมเจอคือ สมาชิกคนที่มี id_act = 1 มีก็ยังถูกเลือกขึ้นมาแสดง

เพราะว่าสมาชิกคนนั้นได้ลงทะเบียนกิจกรรมอื่น ที่ไม่เท่ากับ1 เช่น กิจกรรมที่3 (id_act = 3) ซึ่ง ก็ยังอยู่ในเงื่อนไขในการค้นหา

จึงถูกเรียกกลับขึ้นมาแสดงอีก
Date : 2009-11-28 14:55:45 By : iieszz
 


 

No. 11



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้าเราจะเขียนโค๊ดแบบว่า select ตรงที่ id_act != 1 แล้ว select ตรงที่ id_act = 1 ของสมาชิกคนนั้น ขึ้นมาเปรียบเทียบด้วย

ถ้า id_member ไหน ที่มีทั้ง id_act != 1 และ id_act = 1 อยู่ในตาราง tb_register ไม่ต้องให้เรียกข้อมูลผู้ที่ไม่ได้ลงทะเบียนของสมาชิกคนนั้นขึ้นมาแสดง น่าจะใช่เงื่อนไขของการแก้ปัญาของกระทู้ข้างบนป่าวครับ

ถ้าใช่โค๊ดน่าจะเป็นแบบไหนครับ(ได้แต่หลักการ โค๊ดไม่ค่อยแน่น)


Date : 2009-11-28 15:27:32 By : iieszz
 


 

No. 12



โพสกระทู้ ( 223 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเข้าใจล่ะ แต่เดี๋ยวให้ท่านอื่นมาตอบ อิอิ
คนนึงลงได้หลายกิจกรรม แต่เลือกคนที่ไม่ได้ลง กิจกรรมที่ 1
Date : 2009-11-28 15:32:18 By : chubichane
 


 

No. 13



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ใช่เลยครับ

สิ่งที่ผมต้องการ เป็นแบบที่คุณ chubichane เข้าใจครับ


คนนึงลงได้หลายกิจกรรม แต่เลือกคนที่ไม่ได้ลง กิจกรรมที่ 1 หรือ สมาชิกคนไหนที่ไม่ลงกิจกรรมที่1 แต่ลงกิจกรรมอื่นก็ไม่ต้องเรียกมาแสดง


รุสึกงงๆ กับชีวิต เหมือนเรียน ตรรกศาสตร์ เลย มันวนไปวนมาไงไม่รู้

ช่วยหน่อยน่ะครับ

ระบบลงทะเบียนกิจกรรมผมจะได้ไปต่อได้
Date : 2009-11-28 15:47:56 By : iieszz
 


 

No. 14



โพสกระทู้ ( 209 )
บทความ ( 0 )



สถานะออฟไลน์


Code
SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.mem_id = tr.mem_id
WHERE tr.act_id = '1'


ผลลัพท์

คนที่ 4 กิจกรรม 1


เปลี่ยน แค่ ไม่เท่ากับ เป็นเท่ากับบบ

ถูกหรือยังครับเนี้ย ถ้าไม่ถูกใจนะครับ ผมแนะนำ ให้ทำเป็น Excle ถึงผลลัพท์ที่ต้องการ ให้โชว์
มาโพสให้ดูหน่อยนะครับ พร้อม ฐานข้อมูลด้วย
Date : 2009-11-28 15:59:22 By : martman26
 


 

No. 15



โพสกระทู้ ( 209 )
บทความ ( 0 )



สถานะออฟไลน์


Create Table
CREATE TABLE `tb_member` (
`mem_id` int(3) NOT NULL,
`mem_name` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- dump ตาราง `tb_member`
--

INSERT INTO `tb_member` VALUES (1, 'ทดสอบ 1');
INSERT INTO `tb_member` VALUES (2, 'ทดสอบ 2');
INSERT INTO `tb_member` VALUES (3, 'ทดสอบ 3');
INSERT INTO `tb_member` VALUES (4, 'ทดสอบ 4');

CREATE TABLE `tb_register` (
`mem_id` int(3) NOT NULL,
`act_id` int(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- dump ตาราง `tb_register`
--

INSERT INTO `tb_register` VALUES (1, 2);
INSERT INTO `tb_register` VALUES (2, 3);
INSERT INTO `tb_register` VALUES (4, 3);
INSERT INTO `tb_register` VALUES (4, 1);
INSERT INTO `tb_register` VALUES (1, 4);
INSERT INTO `tb_register` VALUES (1, 3);
INSERT INTO `tb_register` VALUES (3, 3);
INSERT INTO `tb_register` VALUES (4, 4);

CREATE TABLE `tb_activity` (
`act_id` int(1) NOT NULL,
`act_name` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- dump ตาราง `tb_activity`
--

INSERT INTO `tb_activity` VALUES (1, 'กิจกรรม 1');
INSERT INTO `tb_activity` VALUES (2, 'กิจกรรม 2');
INSERT INTO `tb_activity` VALUES (3, 'กิจกรรม 3');
INSERT INTO `tb_activity` VALUES (4, 'กิจกรรม 4');


SQL คนที่ไม่ได้ลงกิจกรรมที่ 1
SELECT * FROM tb_member tb LEFT JOIN tb_register tr ON (tb.mem_id=tr.mem_id)
WHERE tr.act_id != 1 GROUP BY tb.mem_id


ผลลัพท์
คนที่ 1
คนที่ 2
คนที่ 3
คนที่ 4

SQL คนที่ไม่ได้ลงกิจกรรมที่ 3
SELECT * FROM tb_member tb LEFT JOIN tb_register tr ON (tb.mem_id=tr.mem_id)
WHERE tr.act_id != 3 GROUP BY tb.mem_id


ผลลัพท์
คนที่ 1
คนที่ 4

ok มัยครับ ต่อให้ 1 คนลงได้หลายกิจกรรม ก็เถอะ ยังงัย sql มันก็ไม่ดึงคนที่ เรา where ไปอยู่แล้ว หรือถ้าไม่ใช่อีก
ผมแนะนำ ให้ทำเป็น Excle ถึงผลลัพท์ที่ต้องการ แสดงเป็นรูปภาพ ให้โชว์
มาโพสให้ดูหน่อยนะครับ พร้อม ฐานข้อมูลด้วย
Date : 2009-11-28 16:14:08 By : martman26
 


 

No. 16



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้าเราใช้ WHERE tr.act_id = '1'

เราก็จะได้เป็นคนที่มี ไอดีกิจกรรมเป็น 1 ครับ

แต่ที่ต้องการจริงๆ คือคนที่ ไม่มีไอดีกิจกรรมเป็น1

------------------------------------------------------------------------
จากโค๊ด

SELECT *
FROM tb_member tm
INNER JOIN tb_register tr ON tm.id_member = tr.id_member
WHERE tr.id_act != '1'
------------------------------------------------------------------------
ตารางลงทะเบียนกิจกรรม

id_reg id_member id_act id_barcode day_reg
1 1111111111 1 1 2009-11-25 14:48:07
2 2222222222 2 8 2009-11-26 11:04:21
3 1111111111 3 20 2009-11-26 12:44:54
4 2222222222 3 15 2009-11-26 13:09:29
5 4444444444 3 18 2009-11-26 13:19:35
6 1111111111 4 26 2009-11-26 16:22:45
--------------------------------------------------------------------------------------------------------------------------------------

ผลลัพธ์ที่ได้ต้องไม่มี id_member ของสมาชิกแถวสีเขียว ออกมาแสดง

แต่ id_member ของสมาชิกแถวสีเขียว กลับโผล่ขึ้นมาอีก(แถวสีแดงอีก 2 แถว)

เพราะว่า id_member ของสมาชิกแถวสีเขียว(1 id_member ลงได้หลายกิจกรรม) ได้ลงกิจกรรม id_act อื่นด้วย

จึงแสดงแถวสีแดง 2 แถวออกมา

ซึ่งถือว่าผิดเงื่อนไขของการค้นหา ถึงแม้ว่า จะเป็น id_act ของกิจกรรมอื่น แต่ก้ยังเป็นคนเดียวกันที่มี
id_member =1111111111 อยู่ดี ***ถ้าเป็นเคสแบบนี้ผมไม่ต้องการให้ข้อมูลสมาชิกคนนี้ (id_member =1111111111) ออกมาแสดงเลย
Date : 2009-11-28 16:24:12 By : iieszz
 


 

No. 17



โพสกระทู้ ( 223 )
บทความ ( 0 )



สถานะออฟไลน์


ตารางลงทะเบียนกิจกรรม

id_reg id_member id_act id_barcode day_reg
1 1111111111 1 1 2009-11-25 14:48:07
2 2222222222 2 8 2009-11-26 11:04:21
3 1111111111 3 20 2009-11-26 12:44:54
4 2222222222 3 15 2009-11-26 13:09:29
5 4444444444 3 18 2009-11-26 13:19:35
6 1111111111 4 26 2009-11-26 16:22:45

ผลลัพธ์อยากให้เป้นอย่างนี้ใช่ไหมครับ (อธิบายให้คนอื่นดู อิอิ)

id_member

222222222
444444444


* 2 คนนี้ไม่ได้เข้าร่วมกิจกรรมที่ 1
Date : 2009-11-28 16:41:49 By : chubichane
 


 

No. 18



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ผลลัพธ์ เป็นแบบที่คุณ C h u |3 i @ M U T เข้าใจครับ

อ้างอิงจากฐานข้อมูลที่คุณ MarT สร้างน่ะครับ

คำสั่ง(1)
--------------------------------------------------------------------------------------------------------------------------------
SELECT * FROM tb_member tb LEFT JOIN tb_register tr ON (tb.mem_id=tr.mem_id)
WHERE tr.act_id != 1 GROUP BY tb.mem_id
--------------------------------------------------------------------------------------------------------------------------------
ผลลัพธ์(1)

Code
mem_id mem_name mem_id act_id
1 ทดสอบ1 1 2
2 ทดสอบ2 2 3
3 ทดสอบ3 3 3
4 ทดสอบ4 4 3


คำสั่ง(2)
--------------------------------------------------------------------------------------------------------------------------------
SELECT * FROM tb_member tb LEFT JOIN tb_register tr ON (tb.mem_id=tr.mem_id)
WHERE tr.act_id = 1 GROUP BY tb.mem_id
--------------------------------------------------------------------------------------------------------------------------------

ผลลัพธ์(2)

Code
mem_id mem_name mem_id act_id
4 ทดสอบ4 4 1

----------------------------------------------------------------------------------------------------------------------------------

สรุปก็คือ mem_id =4 ก็ยังแสดงออกมาทั้ง 2 คำสั่ง

ที่ผมต้องการจริงๆ คือ ถ้า คำสั่งที่(1) มีการแสดงผล ของ mem_id=4 ออกมา

แสดงแค่
Code
mem_id mem_name mem_id act_id
1 ทดสอบ 1 1 2
2 ทดสอบ 2 2 3
3 ทดสอบ 3 3 3


คำสั่งที่1 ห้ามแสดงผล ของ mem_id=4 ออกมา *** เหมือนกับเช็คก่อนว่า ถ้าคำสั่ง(2)มีการแสดงผลนั้นออกมา
คำสั่งแรกห้ามแสดงผล mem_id=4 ออกมา


--------------------------------------------------------------------------------------------------------------------------
เพราะว่า ถ้าเราออกรายงานที่มีชื่อหัวข้อว่า

ตารางแสดงรายชื่อผู้ที่ไม่ผ่านกิจกรรม

ก็จะทำให้มีรายชื่อของ mem_id =4 ออกมาด้วย(ถ้าใช้ผลจากคำสั่งที่1)

ทั้งๆที่เขาได้ลงทะเบียนกิจกรรมนั้นแล้ว

--------------------------------------------------------------------------------------------------------------------------
Date : 2009-11-28 16:53:21 By : iieszz
 


 

No. 19



โพสกระทู้ ( 209 )
บทความ ( 0 )



สถานะออฟไลน์


เข้าใจล่ะ ต้อง where NOT IN subquery
ผมจะลองช่วยดูนะครับ
แหมม เลิกงานแล้วด้วยสิ
พรุ่งนี้ถ้ายังไม่มีใครตอบผมจะมาช่วยครับ
Date : 2009-11-28 17:31:47 By : martman26
 


 

No. 20



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ขอบคุณ คุณ MarT คุณ C h u |3 i @ M U T คุณ vee มากๆ น่ะครับ

ที่ร่วมด้วยช่วยกัน ทั้งวัน(มึนๆกันเลยทีเดว)

พรุ่งนี้ คุณ MarT มาช่วยผมอีกวันน่ะครับ(ไม่น่าเลิกงานก่อนเลย เกือบได้แล้วเชียว..ฮ่าๆ เริ่มมีความหวัง)



ขอบคุณๆจากใจครับ

*** พี่ๆท่านใดเข้าใจแนวคิดของผม เข้ามาช่วยหน่อยน่ะครับ
Date : 2009-11-28 17:37:29 By : iieszz
 


 

No. 21



โพสกระทู้ ( 209 )
บทความ ( 0 )



สถานะออฟไลน์


อ้างอิงจากฐานข้อมูลเก่านะครับ
Code
SELECT tm.mem_id,tm.mem_name
FROM tb_member tm
LEFT JOIN tb_register tr ON (tm.mem_id=tr.mem_id)
LEFT JOIN tb_activity ta ON (tr.act_id=ta.act_id)
WHERE NOT tm.mem_id IN(
SELECT tr.mem_id
FROM tb_register tr
LEFT JOIN tb_activity ta ON (tr.act_id=ta.act_id)
WHERE tr.act_id =1
) GROUP BY tm.mem_id


ผลลัพท์ที่แสดงออกมา
จะได้
รัหส
1
2
3
น่าจะได้แล้วนะครับ

ไม่ต้องอธิบายนะครับ เพราะมึนนิดๆอิๆ

MarT Say:
ต้องขอโทษด้วยครับที่รีบกลับบ้าน เพราะมีนัดที่ลานเบียร์ อิๆ เพราะกินเบียร์ เลยคิดออกนะเนี้ย โชคดีนะครับที่ไม่ได้ไปเที่ยว ต่อ เพราะผมต้องกลับมาช่วยคุณ iieszz เพราะรับปากไว้ (เรื่องจริงคือ ไปกดตังแล้ว เงินเดือนอันน้อยนิดยังไม่เข้า เลยต้องกลับบ้านดีกว่า....เคร้า)


ปล. ทำให้โค๊ดมันเป็นสีๆเนี้ย เลือกตรงใหนครับ โง่เลย
Date : 2009-11-28 23:54:56 By : martman26
 


 

No. 22



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ขอบคุณ คุณ MarT มากๆน่ะครับ

ที่มาช่วยผมแก้ปัญหาครั้งนี้ของผม

และทำให้ผมได้รู้ว่า sql ไม่ได้มีแต่ select*from tb

มันยังมีอะไรที่ผมต้องเรียนรู้อีกเยอะ

พี่เป็นโปรแกรมเมอร์อยู่หรือเปล่าครับ(ผมน่าจะเป็นรุ่นน้อง ดูจากฝีมือแล้ว)

ถ้าขอเมลล์พอจะให้ได้เปล่าครับ

***เปลี่ยนสีก็คลิกเมาท์คลุมดำเนื้อหา แล้วก็เลือกสีครับ

**** ถ้ามีเวลาว่างๆ ช่วยอธิบายแนวคิดในการเขียนโค๊ด select ขั้นเทพ ที่ join แล้ว join อีก จนได้คำตอบ ให้ผมมั่งน่ะครับ(แบบว่าคิดได้ แต่ทำไม่ค่อยได้ )
Date : 2009-11-29 00:29:02 By : iieszz
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยเรียบเรียง เงื่อนไขการใช้คำสั่ง select หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่