|
|
|
ดึงค่าจากเทเบิลนึง (MySQL) มาลงในอีกเทเบิลนึง ทั้งในดาตาเบสเดียวกันและคนละดาตาเบส ด้วยเว็ป ASP.NET C# ทำอย่างไรครับผม |
|
|
|
|
|
|
|
ลองใช้ INSERT SELECT ครับ
|
|
|
|
|
Date :
2011-03-27 10:47:23 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณครับพี่ แล้วหากเป็นการดึงข้ามดาตาเบส และมีการเก็บค่าแตกต่างกัน เหมือนในคำถามที่สองของผม
" ยังมีการต้องดึงดาตาเบส จากสองเทเบิลที่อยู่กันคนละดาตาเบสแต่เป็นMySQLเหมือนกัน
แถมยังเก็บค่าคนละแบบอีกด้วย ไม่ทราบทำอย่างไรครับ
เช่น ดึงชื่อ-นามสกุล จากเทเบิลหนึ่ง ที่เก็บชื่อกับนามสกุลรวมกันในช่องเดียว มาใส่ในอีกเทเบิลหนึ่ง ที่เก็บชื่อกับนามสกุลแยกกันคนละช่อง แถมอยู่กันคนละดาตาเบสอีกด้วย "
แบบนี้ต้องทำอย่างไรครับ คือ งงตั้งแต่ดึงข้ามดาตาเบสแล้วครับ แถมยังเก็บไม่เหมือนกันอีก คือได้มาเป็นชื่อ+นามสกุล ทำอย่างไรให้แยกเป็นชื่อ และ นามสกุล และใส่ในอีกเทเบิลหนึ่งได้ครับพี่
ขอบพระคุณครับ
|
|
|
|
|
Date :
2011-03-27 11:50:24 |
By :
seniorproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับ แล้วในเคสแรกของผม INSERT SELECT ก็ใช้ไม่ได้ครับ ในกรณีแรก เพราะว่า ต้องการเพียง user_id เท่านั้นจาก authentication_user ที่จะเอาลงในเทเบิลlog นอกจากนั้น เป็นค่าดีฟอลท์ ที่ต่างกันในแต่ละหน้าเว็ป ที่ต้องใช้กำหนดเป็น VALUE ครับพี่
คือการบันทึกลอค 1 ครั้ง ต้องเก็บ 6 ค่า 5 ค่ามาจากการเซ็ต VALUE ไปเลย และอีก 1 ค่าต้องเอามาจากเทเบิล authentication_user ครับ
ขอบพระคุณครับ
|
|
|
|
|
Date :
2011-03-27 12:03:18 |
By :
seniorproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quote:insert into yourtable (field1, field2, field3, field4, field5, field6) select 'aaa', 'bbb', 'ccc', 'ddd', 'eee', user_id from users
|
|
|
|
|
Date :
2011-03-27 12:16:48 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ว่าคุณจะทำอะไรจะดึงค่า log หรือ user อไรก้อตามที
ในกรณี MySQL หากต้องการ select ข้าม database ซึ่ง MySQL จะเรียกว่า Schema
ตัว schema ที่จะมาดึงข้อมูลนั้นจะต้องอยู่บน instance เดียวกัน
ที่ต้องทำคือระบุชื่อ schema ก่อน table เช่น
SELECT * FROM SCHEMA1.TABLE1 JOIN SCHEMA2.TABLE2 ......
เทานั้นเองค่ะ
ส่วนการจะดึงข้อมูลอะรัยจากไหนเพื่อมาลงอีกข้อมูล
คุณก้อต้องหาวิธีการ normalized รูปแบบข้อมูลให้ตรงกัน
ตอบกว้างๆอะนะคะ เพราะคุณก้อถามมาเท่านี้
แต่ถ้า กรณี schema อยู่ต่าง instance หรือต่างระบบเช่น postgres หรือ ms sql
ก้อวนลูปจัดการไม่ก้อใช้ linq เชื่อเอาค่ะ
|
|
|
|
|
Date :
2011-03-27 14:02:39 |
By :
สาวเอ๋อ เอ๋อเหรอ เอ๋อมากมาย |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณพี่ๆทุกท่านที่ชี้แนะอีกครั้งครับ คราวนี้ อยากทราบว่า ตามที่ผมถามในข้อที่สอง ตอนนี้พอเข้าใจแล้วเรื่องการดึงค่าข้ามดาตาเบส แต่ยังอยากทราบวิธี ที่จะ ทำให้ชื่อกับนามสกุล ที่อยู่รวมกันในช่องเดียวกัน ในเทเบิลนึง แยกเป็น ชื่อช่องนึง นามสกุลช่องนึง ในอีกเทเบิลนึงได้ครับ นอกจากนี้ ยังมีข้อสงสัยอยู่บ้างว่า เวลาที่เชื่อมต่อกับดาตาเบส มันต่อได้แค่ 1 ดาตาเบส ต่อครั้ง เช่น
strConnString = "Server=localhost;User Id=root; Password=root; Database=mydatabase;
objConn = new MySqlConnection(strConnString);
objConn.Open();
string strSQL = "SELECT * FROM customer";
.
.
.
คือต่อดาตาเบสชื่อมายดาตาเบสได้อันเดียว ต่อครั้ง แล้วจะใช้คำสั่ง ข้ามดาตาเบส แบบนี้
SELECT * FROM mydatabase.TABLE1 JOIN otherdatabase.TABLE2 .....
ได้อย่างไรครับ
ขอบพระคุณมากครับ
|
|
|
|
|
Date :
2011-03-27 15:37:43 |
By :
seniorproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องอยู่ใน hosting เดียวกัน instance เดียวกัน และ database user ของคุณต้องมีสิทธิ์ทั้งสอง database ดังกล่าวด้วย
|
|
|
|
|
Date :
2011-03-27 15:45:32 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดาตาเบสยูสเซอร์ของผมมีสิทธิทั้งสองดาตาเบสครับ และสองดาตาเบสอยู่ใน MySQL เหมือนกันในเครื่องเดียวกันครับ
และอยู่ในlocalhost เหมือนกันครับ เท่าที่ผมทราบมีเทานี้ ส่วนhosting กับ instance คืออะไรหรือครับ ผมไม่ทราบจริงๆครับ
ไม่มีความรู้ทางด้านดาตาเบสเท่าไรเพราะเป็นสายคอมไซน์ไม่ใช่ดาตาเบส แต่ต้องมาทำเว็บที่เกี่ยวข้องกับดาตาเบสครับ
รบกวนขอคำชี้แนะ และหากมีตัวอยากโคดด้วยจะดีมากเลยครับ
ขอบพระุคณอย่างสูงครับ
|
|
|
|
|
Date :
2011-03-27 16:01:32 |
By :
seniorproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
instance ก็หมายถึง mysql service ครับ ดูเหมือนคุณจะทำได้นะ เพราะดูแล้วครบถ้วน
|
|
|
|
|
Date :
2011-03-27 16:05:44 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำดูเลยค่ะ
|
|
|
|
|
Date :
2011-03-27 16:13:58 |
By :
สาวเอ๋อ เอ๋อเหรอ เอ๋อมากมาย |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณมากครับพี่
แต่ยังมีข้อสงสัยตามนี้ครับผม
"แต่ยังอยากทราบวิธี ที่จะ ทำให้ชื่อกับนามสกุล ที่อยู่รวมกันในช่องเดียวกัน ในเทเบิลนึง แยกเป็น ชื่อช่องนึง นามสกุลช่องนึง ในอีกเทเบิลนึงได้ครับ
นอกจากนี้ ยังมีข้อสงสัยอยู่บ้างว่า เวลาที่เชื่อมต่อกับดาตาเบส มันต่อได้แค่ 1 ดาตาเบส ต่อครั้ง เช่น
strConnString = "Server=localhost;User Id=root; Password=root; Database=mydatabase;
objConn = new MySqlConnection(strConnString);
objConn.Open();
string strSQL = "SELECT * FROM customer";
.
.
.
คือต่อดาตาเบสชื่อmydatabaseได้อันเดียว ต่อครั้ง แล้วจะใช้คำสั่ง ข้ามดาตาเบส แบบนี้
SELECT * FROM mydatabase.TABLE1 JOIN otherdatabase.TABLE2 .....
ได้อย่างไรครับ
ขอบพระคุณมากครับ
|
|
|
|
|
Date :
2011-03-27 16:14:20 |
By :
seniorproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอจะทราบว่า ใช้ คำสั่ง Split http://www.dotnetperls.com/string-split
แบ่งสตริงยาวๆเป็นสองส่วนได้ แต่ไม่ทราบว่าจะดึงสตริงออกมาแบ่ง แล้วใส่ในอีกเทเบิลอย่างไรครับ
ขอบพระคุณครับ
|
|
|
|
|
Date :
2011-03-27 23:56:25 |
By :
seniorproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|