ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 169|ตอบกลับ: 0

ขอแนวทางการ JOIN Table 5 ตารางหน่อยครับ

[คัดลอกลิงก์]

3

กระทู้

15

โพสต์

169

เครดิต

Member

Rank: 2

เครดิต
169

Capture.JPG
ขอแนวทางการจอยตารางตามผังข้างบนหน่อยครับ
ผมต้องการคิวรี่ข้อมูลเฉพาะ BorelogPK = 1 ในตารางอีก 4 พอผมเขียนคิวรี่ออกมาไม่ได้ดึงเฉพาะ BorelogPK = 1
ในตารางพวก BorelogMainBar มันกลับดึงข้อมูลทั้งหมดมาแสดงแบบลูกจนครบทุกตารางทำให้คิวรี่ออกมาได้ข้อมูลไม่ถูกต้องครับ

0

กระทู้

4

โพสต์

80

เครดิต

Member

Rank: 2

เครดิต
80
โพสต์ 2020-11-11 18:28:07 | ดูโพสต์ทั้งหมด

SELECT ตารางที่ต้องการแสดง.ฟิลด์ที่ต้องการแสดง,ตารางที่ต้องการแสดง.ฟิลด์ที่ต้องการแสดง,ตารางที่ต้องการแสดง.ฟิลด์ที่ต้องการแสดง,
FROM borelog bl
LEFT JOIN  BorelogmainBar bmb ON bmb.borelogPK=bl.borelogPK
LEFT JOIN  BorelogLinks bll ON bll.borelogPK=bl.borelogPK
LEFT JOIN  BorelogStiffiners bln ON bln.borelogPK=bl.borelogPK
LEFT JOIN  BorelogSoilay bls ON bls.borelogPK=bl.borelogPK
LEFT JOIN  BorelogTruck blt ON blt.borelogPK=bl.borelogPK
WHERE เงื่อนไขที่Table.ฟิลด์="เงื่อนไข??"

3

กระทู้

15

โพสต์

169

เครดิต

Member

Rank: 2

เครดิต
169
 เจ้าของ| โพสต์ 2020-11-12 09:58:04 | ดูโพสต์ทั้งหมด

thanaphum ตอบกลับเมื่อ 2020-11-11 18:28
SELECT ตารางที่ต้องการแสดง.ฟิลด์ที่ต้องการแสดง,ตารางที ...

Capture1.JPG ผมลองทำแล้วครับข้อมูลที่ได้จะไม่ตรงครับมันลูบจนทั้งสี่ตารางที่จอยเข้ามา

2

กระทู้

5

โพสต์

60

เครดิต

Member

Rank: 2

เครดิต
60
โพสต์ 2020-11-12 11:56:09 | ดูโพสต์ทั้งหมด

ลองเปลี่ยนจาก LEFT JOIN เป็น INNER JOIN ดูครับ

3

กระทู้

15

โพสต์

169

เครดิต

Member

Rank: 2

เครดิต
169
 เจ้าของ| โพสต์ 2020-11-12 12:26:40 | ดูโพสต์ทั้งหมด

ppcchan265 ตอบกลับเมื่อ 2020-11-12 11:56
ลองเปลี่ยนจาก LEFT JOIN เป็น INNER JOIN ดูครับ

ลองแล้วครับมาเหมือนเดิม

3

กระทู้

15

โพสต์

169

เครดิต

Member

Rank: 2

เครดิต
169
 เจ้าของ| โพสต์ 2020-11-12 12:29:20 | ดูโพสต์ทั้งหมด

  1. FROM
  2.                     (
  3.                             (
  4.                                     (
  5.                                             ( ( Borelog LEFT JOIN BorelogMainBar ON Borelog.BorelogPK = BorelogMainBar.BorelogPK ) LEFT JOIN BorelogLinks ON Borelog.BorelogPK= BorelogLinks.BorelogPK )
  6.                                             LEFT JOIN BorelogStiffiners ON Borelog.BorelogPK= BorelogStiffiners.BorelogPK
  7.                                     )
  8.                                     LEFT JOIN BorelogSoiLayer ON Borelog.BorelogPK= BorelogSoiLayer.BorelogPK
  9.                             )
  10.                             LEFT JOIN BorelogTruck ON Borelog.BorelogPK= BorelogTruck.BorelogPK
  11.                     )
  12.             WHERE Borelog.BorelogPK =" & PK
  13.         Try
  14.             If Conn.State = ConnectionState.Closed Then Conn.Open()
  15.             Cmd.Connection = Conn
  16.             Cmd.CommandText = strSQL
  17.             DAP1 = New SqlDataAdapter(strSQL, Conn)
  18.             Dim DR As SqlDataReader = Cmd.ExecuteReader
  19.             Dim i As Long = 0
  20.             If DR.HasRows Then
  21.                 While DR.Read
  22.                     With dgvMainbars
  23.                         .Rows.Add(i)
  24.                         .Rows(i).Cells(0).Value = DR.Item("MainBarQty").ToString
  25.                         .Rows(i).Cells(1).Value = DR.Item("MainBarType").ToString
  26.                         .Rows(i).Cells(2).Value = DR.Item("MainBarDiameters").ToString
  27.                         .Rows(i).Cells(3).Value = DR.Item("MainBarLenght").ToString
  28.                     End With
  29.                     i += 1
  30.                 End While
คัดลอกไปที่คลิปบอร์ด

มันมีปัญหาเฉพาะในส่วนของ เดด้ากริดอย่างเดียวครับ

257

กระทู้

386

โพสต์

3256

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
3256
โพสต์ 2020-11-12 13:37:48 | ดูโพสต์ทั้งหมด

ผมดูตารางข้อมูลไม่ออกครับ ลอง Export ฐานข้อมูลส่งมาเป็น Access ได้หรือเปล่าครับ ... ก็คงพอจะแนะนำแบบทั่วๆไป คือกรณีที่มีข้อมูลซ้ำกัน ลองใช้คำสั่ง DISTINCT ในฟิลด์ที่ซ้ำกันดูครับ
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

4

โพสต์

80

เครดิต

Member

Rank: 2

เครดิต
80
โพสต์ 2020-11-13 09:44:54 | ดูโพสต์ทั้งหมด

maisurin ตอบกลับเมื่อ 2020-11-12 12:29
มันมีปัญหาเฉพาะในส่วนของ เดด้ากริดอย่างเดียวครับ

เอา คำสั่ง SQL ไป query บน ฺDBMS ได้ค่าออกมาอย่างที่ต้องการไหมครับ

3

กระทู้

15

โพสต์

169

เครดิต

Member

Rank: 2

เครดิต
169
 เจ้าของ| โพสต์ 2020-11-13 10:21:40 | ดูโพสต์ทั้งหมด

thanaphum ตอบกลับเมื่อ 2020-11-13 09:44
เอา คำสั่ง SQL ไป query บน ฺDBMS ได้ค่าออกมาอย่างที่ต้องการไหมครับ

กรณีที่จอยแค่สองตารางจะได้ข้อมูลมาตรงครับ แต่จอยเริ่มตั้งแต่สามขึ้นไปมันจะวนลูบกันทจนครบจากคิวรี่ทำให้วนค่าเดิมๆเข้าไปเดด้ากริด

2

กระทู้

5

โพสต์

60

เครดิต

Member

Rank: 2

เครดิต
60
โพสต์ 2020-11-13 14:30:27 | ดูโพสต์ทั้งหมด

ต้องดูโครงสร้างกับข้อมูลอีกทีครับถึงจะบอกได้ ครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2020-12-2 20:26 , Processed in 0.607429 second(s), 5 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้