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 > โจทย์หินๆ หาคนช่วยด้วยครับท่าน SQL query C#,VB,PHP ฯลฯ



 

โจทย์หินๆ หาคนช่วยด้วยครับท่าน SQL query C#,VB,PHP ฯลฯ

 



Topic : 048769



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



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




ชื่อตาราง คู่แข่งขัน
----รหัสรายการ-------รอบที่------คู่ที่-------ชื่อผู้เล่น
-------1--------------------1-----------1----------A
-------1--------------------1-----------1----------B
-------1--------------------1-----------2----------C
-------1--------------------1-----------2----------D
-------1--------------------1-----------3----------E
-------1--------------------1-----------3----------F
-------1--------------------2-----------1----------A
-------1--------------------2-----------1----------C
-------1--------------------2-----------2----------B
-------1--------------------2-----------2----------E
-------1--------------------2-----------3----------D
-------1--------------------2-----------3----------F


ผมมีความจำเป็น ต้องรู้ว่า ใครเคยแข่งกับใครมาบ้างในแต่ละรอบโดยเก็บข้อมูลเป็นอาเรย์ดังนี้ครับ
Array ของ ชื่อผู้เช่น (ชื่อผู้เล่น รอบที่ 1 ,ชื่อผู้เล่น รอบที่ 2,.....รอบที่ N)
จากตารางจะได้ผลลัพดังนี้
A(B,C)
B(A,E)
C(D,A)
D(C,F)
F(E,D)

ช่วยเขียนโค๊ดในการคิวรี่ขี้นมาให้ด้วยครับ(database: ms sql server ครับ)
ภาษาอะไรก็ได้ครับ

ขอขอบคุณล่วงหน้าครับ



Tag : PHP, MySQL, Ms SQL Server 2005, Web (ASP.NET), VB.NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-09-15 00:20:14 By : kanitin View : 1495 Reply : 12
 

 

No. 1



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


การบ้าน?






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 01:02:20 By : PlaKriM
 


 

No. 2



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



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


สวัสดีครับ

บอกก่อนเลยว่า หากออกแบบ database ได้ครอบคลุม และเหมาะสม มากเท่าไหร่ ตัว code ยิ่งเขียนง่ายครับ

การออกแบบ database จะต้องนำข้อมูลมาวิเคราะห์ก่อนว่าต้องมี field อะไรบ้าง เช่น
1. การแข่ง อะไร?
2. รายละเอียดที่จำเป็นต้องมีอะไรบ้าง

จำเป็นต้องเก็บเป็นแบบ array มั้ย?
ขึ้นอยู่กับการออกแบบ
หากเป็น requirement เช่น การบ้าน (โดน อ. บังคับ ToT ) ก็คงต้องก้มหน้าทำต่อไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 02:15:51 By : winphp
 

 

No. 3



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



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


ไม่มีใครช่วยได้บ้างเลยหรือครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 09:11:07 By : kanitin
 


 

No. 4



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


เหมือนจะเป็นการบ้าน เพราะถ้าเป็นงานคงปรับเปลี่ยนให้ง่ายกว่านี้ไปและ ถ้าเป็นการบ้าน ควรจะทำเองจะได้เริ่มหัดคิดด้วยตัวเองด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 09:21:58 By : salapao_codeman
 


 

No. 5



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


ผมเชื่อว่า คงไม่ใช่การบ้าน

เรื่องตารางการแข่งขัน เคยเห็น คุณดุนยา เคยทำนะ แต่ตอนนี้ไม่รู้ไปใหนแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 09:35:44 By : deawx
 


 

No. 6



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



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


ผมนั่งคิดมาเป็นเดือนแล้วครับ ช่วยที ไขปริศนาให้ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 10:08:30 By : kanitin
 


 

No. 7



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

serialize ข้อมูลลงตารางก็ได้นี่ครับ ไม่ก็แค่เก็บ id แยกไว้ก็ได้

ผมเองไม่ค่อยถนัดด้าน database relationship หรอก

คิวรี่หลายครั้งก็ได้คับ ถ้าจำเป็น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 10:23:04 By : pjgunner.com
 


 

No. 8



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : pjgunner.com เมื่อวันที่ 2010-09-15 10:23:04
รายละเอียดของการตอบ ::
ผมก็คิดไว้เช่นนั้นครับ
แต่คลำหาทางไปยังไม่เจอเลยครับ
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 12:10:13 By : kanitin
 


 

No. 9



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



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


ในเมื่อมีหนึ่งความเห็นบอกว่าไม่ใช่การบ้านก้อโอเคค่ะ
ติงนิดนึงคุณอาจจะบอก structure ของ table ไม่หมด
หรืออาจจะอยู่ในรูปแบบนี้จริงๆ มันทำให้ query ยาวขึ้นน่ะค่ะ
ถ้าเพียงแต่เพิ่ม id แบบ unique key เข้ามาจะเขียนสั้นลงไปเยอะค่ะ

ก็ไม่ได้จัดว่ายากอะไรนะคะ พี่ๆที่นี่แทบจะทุกคนคงทำได้ select แลัวก้อ join เท่านั้นเอง
ทั้งหมดนี่ทำบน mysql นะคะ ค่อยไปปรับเอาตาม table ของคุณละกัน
Code (PHP)
DROP TABLE IF EXISTS `test`.`myMatch`;
CREATE TABLE  `test`.`myMatch` (
  `id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `tournament_id` int(10) null,
  `rounded` int(10) null,
  `sequence` int(10) null ,
  `player` varchar(100) null,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=tis620;

insert into myMatch( `tournament_id` ,`rounded` ,`sequence` ,`player`)
VALUES
(1,1,1,'A') ,
(1,1,1,'B') ,
(1,1,2,'C') ,
(1,1,2,'D') ,
(1,1,3,'E') ,
(1,1,3,'F') ,
(1,2,1,'A') ,
(1,2,1,'C') ,
(1,2,2,'B') ,
(1,2,2,'E') ,
(1,2,3,'D') ,
(1,2,3,'F') ;

select * from `myMatch` ;

-- PKEY REF BY ALL KEY IN TABLE

select Q2.* ,'\n'
FROM
(
   SELECT * from `myMatch`
   WHERE `Player`='A'
) AS Q1
LEFT JOIN `myMatch` AS Q2
   ON (Q1.`tournament_id`=q2.`tournament_id`)
      AND (q1.`rounded` = q2.`rounded`)
      AND (q1.`sequence` = q2.`sequence`)
      AND (q1.`player` <> q2.`player`)
ORDER BY q2.`tournament_id` ,q2.`rounded` ,q2.`sequence`
INTO OUTFILE 'd:\mymatch.output..txt';
-- ที่เอาท์พุทออกไฟล์เพราะ ไม่อยาก capscreen ให้ดูค่ะ ตอนนี้ run สารพัดเดวเครื่องจะ hang


ผลลัพธ์

0000000042 1 1 1 B
0000000048 1 2 1 C

และชุดใหญ่

Code (PHP)
SELECT qPlayer.player
   ,qR1comp.Opponent AS `O1`
   ,qR2comp.Opponent AS `O2`
FROM
(
   SELECT DISTINCT `player` from `mymatch`
) AS qPlayer
LEFT JOIN
(
	-- **************************************
  -- FIND PLAYER VS OPPENET WITH ROUNDED 01
	-- **************************************
  SELECT qR1Player.player AS player
     ,QOpponentR1.player AS `Opponent`
	FROM
	(
	   SELECT DISTINCT player from mymatch
	) AS qR1Player
	LEFT JOIN
	(
	   SELECT * FROM `myMatch`
	   WHERE `rounded`= 1
	) AS QR1
	   ON (qR1Player.player = QR1.player)
	LEFT JOIN
	(
	   SELECT * FROM `myMatch`
	   WHERE `rounded`= 1
	) AS QOpponentR1
	   ON (qR1Player.player <> QOpponentR1.player)
	      AND (QR1.player <> QOpponentR1.player)
	      AND (QR1.sequence = QOpponentR1.sequence)
	-- **************************************
) AS qR1Comp
  ON (qPlayer.Player = qR1Comp.player)
LEFT JOIN
(
	-- **************************************
  -- FIND PLAYER VS OPPENET WITH ROUNDED 02
	-- **************************************
  SELECT qR2Player.player AS player
     ,QOpponentR2.player AS `Opponent`
	FROM
	(
	   SELECT DISTINCT player from mymatch
	) AS qR2Player
	LEFT JOIN
	(
	   SELECT * FROM `myMatch`
	   WHERE `rounded`= 2
	) AS QR2
	   ON (qR2Player.player = QR2.player)
	LEFT JOIN
	(
	   SELECT * FROM `myMatch`
	   WHERE `rounded`= 2
	) AS QOpponentR2
	   ON (qR2Player.player <> QOpponentR2.player)
	      AND (QR2.player <> QOpponentR2.player)
	      AND (QR2.sequence = QOpponentR2.sequence)
	-- **************************************
) AS qR2Comp
  ON (qPlayer.Player = qR2Comp.player)
INTO OUTFILE 'd:\player and opponent.txt' ;


ผลลัพธ์

A B C
B A E
C D A
D C F
E F B
F E D

ออกแบบ table ได้หละหลวมค่ะ
ถ้า normalized หน่อยจะเขียนสั้นเข้าใจง่ายกว่านี้
อีกอย่างวันนี้เพิ่งเป็นไข้มามะคืน เบลอๆนิดๆค่ะ


ประวัติการแก้ไข
2010-09-15 13:45:39
2010-09-15 13:49:30
2010-09-15 13:52:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 12:51:49 By : blurEyes
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : blurEyes เมื่อวันที่ 2010-09-15 12:51:49
รายละเอียดของการตอบ ::
ด้วยความเคารพ อย่างสูง
ขอบคุณมากมายครับ
ไม่รู้จะกล่าวอะไรอีกแล้ว
ขอบคุณจากใจจริงครับ
โปรเจ็คผมสอบศุกร์นี้ครับ ขอบคุณมากมายครับ
แถมได้ความรู้ใหม่อีกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 13:07:54 By : kanitin
 


 

No. 11



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



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


งงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 13:14:07 By : [email protected]
 


 

No. 12



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

อยากให้น้องพราวมาสอนพี่จริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 13:44:56 By : pjgunner.com
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : โจทย์หินๆ หาคนช่วยด้วยครับท่าน SQL query C#,VB,PHP ฯลฯ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่