คำถามติดแท็ก join

JOIN เป็นการดำเนินการทั่วไปในพีชคณิตเชิงสัมพันธ์สำหรับการดำเนินการรวมกันในความสัมพันธ์สองหรือมากกว่าในระบบฐานข้อมูลเชิงสัมพันธ์ เข้าร่วมยังเป็นคำหลักของภาษา SQL สำหรับการดำเนินการนี้

5
วิธีใดเร็วที่สุดในการรวม / เข้าร่วม data.frames ใน R?
ตัวอย่างเช่น (ไม่แน่ใจว่าตัวอย่างที่เป็นตัวแทนส่วนใหญ่): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) นี่คือสิ่งที่ฉันมีจนถึงตอนนี้: d <- merge(d1,d2) # 7.6 sec library(plyr) d <- join(d1,d2) # 2.9 sec library(data.table) dt1 <- data.table(d1, key="x") dt2 <- data.table(d2, key="x") d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] ) # 4.9 sec library(sqldf) sqldf() sqldf("create index ix1 on …

4
LINQ เข้าร่วมกับหลายเงื่อนไขใน On Clause
ฉันกำลังพยายามใช้แบบสอบถามใน LINQ ที่ใช้การรวมภายนอกด้านซ้ายที่มีหลายเงื่อนไขในส่วนคำสั่ง ON ฉันจะใช้ตัวอย่างของสองตารางต่อไปนี้Project (ProjectID, ProjectName) และTask (TaskID, ProjectID, TaskName, Completed) ฉันต้องการดูรายการทั้งหมดของโครงการทั้งหมดที่มีงานตามลำดับ แต่เฉพาะงานที่เสร็จสมบูรณ์ ฉันไม่สามารถใช้ตัวกรองCompleted == trueเพราะจะกรองโปรเจ็กต์ใด ๆ ที่ไม่มีงานที่เสร็จสมบูรณ์ออกไป แต่ฉันต้องการเพิ่มCompleted == trueในส่วนคำสั่ง ON ของการเข้าร่วมเพื่อให้แสดงรายการโครงการทั้งหมด แต่จะแสดงเฉพาะงานที่เสร็จสมบูรณ์เท่านั้น โครงการที่ไม่มีงานที่เสร็จสมบูรณ์จะแสดงแถวเดียวพร้อมค่าว่างสำหรับงาน นี่คือรากฐานของแบบสอบถาม from t1 in Projects join t2 in Tasks on new { t1.ProjectID} equals new { t2.ProjectID } into j1 from j2 in j1.DefaultIfEmpty() …
96 linq  join 

2
พฤติกรรมเริ่มต้นของ MySQL JOIN, INNER หรือ OUTER คืออะไร?
ชั่วโมงที่แล้วฉันจึงหาทางอินเทอร์เน็ตอ่านและมองหาคำตอบที่ชัดเจนสำหรับคำถามง่ายๆนี้ JOIN เริ่มต้นใน MySQL คืออะไร? SELECT * FROM t1 JOIN t2 เป็นเช่นเดียวกับ SELECT * FROM t1, t2 OR SELECT * FROM t1 INNER JOIN t2 นอกจากนี้คำถามที่เกี่ยวข้องเมื่อคุณใช้ประโยค "WHERE" จะเหมือนกับ JOIN หรือ INNER JOIN ตอนนี้ฉันคิดว่า JOIN แบบสแตนด์อะโลนนั้นเหมือนกับการใช้เครื่องหมายจุลภาคและ WHERE clauses
95 mysql  select  join 

16
เหตุใดการรวมจึงไม่ดีเมื่อพิจารณาถึงความสามารถในการปรับขนาด
เหตุใดการเข้าร่วมจึงไม่ดีหรือ 'ช้า' ฉันรู้ว่าฉันได้ยินสิ่งนี้อีกครั้ง เจอคำพูดนี้ ปัญหาคือการรวมค่อนข้างช้าโดยเฉพาะอย่างยิ่งในชุดข้อมูลที่มีขนาดใหญ่มากและหากพวกเขาช้าเว็บไซต์ของคุณก็ช้า ใช้เวลานานในการแยกบิตข้อมูลทั้งหมดออกจากดิสก์และรวบรวมข้อมูลทั้งหมดเข้าด้วยกันอีกครั้ง แหล่งที่มา ฉันคิดเสมอว่าพวกเขาเร็วโดยเฉพาะเมื่อมองหา PK ทำไมพวกเขาถึง 'ช้า'?
94 sql  join 

2
ฉันจะอัปเดตขณะเข้าร่วมตารางบน SQLite ได้อย่างไร
ฉันเหนื่อย : UPDATE closure JOIN item ON ( item_id = id ) SET checked = 0 WHERE ancestor_id = 1 และ: UPDATE closure, item SET checked = 0 WHERE ancestor_id = 1 AND item_id = id ทั้งสองใช้งานได้กับ MySQL แต่สิ่งเหล่านี้ทำให้ฉันมีข้อผิดพลาดทางไวยากรณ์ใน SQLite ฉันจะทำให้ UPDATE / JOIN นี้ทำงานกับ SQLite เวอร์ชัน 3.5.9 ได้อย่างไร

6
วิธีดำเนินการเข้าร่วมระหว่างหลายตารางใน LINQ lambda
ฉันพยายามทำการเข้าร่วมระหว่างหลาย ๆ ตารางใน LINQ ฉันมีชั้นเรียนต่อไปนี้: Product {Id, ProdName, ProdQty} Category {Id, CatName} ProductCategory{ProdId, CatId} //association table และฉันจะใช้รหัสต่อไปนี้ (ที่product, categoryและproductcategoryกรณีของการเรียนข้างต้น): var query = product.Join(productcategory, p => p.Id, pc => pc.ProdID, (p, pc) => new {product = p, productcategory = pc}) .Join(category, ppc => ppc.productcategory.CatId, c => c.Id, (ppc, c) => new …

2
วิธีระบุชื่อคอลัมน์สำหรับ x และ y เมื่อเข้าร่วมใน dplyr
ฉันมีเฟรมข้อมูลสองเฟรมที่ฉันต้องการเข้าร่วมโดยใช้ dplyr หนึ่งคือกรอบข้อมูลที่มีชื่อ test_data <- data.frame(first_name = c("john", "bill", "madison", "abby", "zzz"), stringsAsFactors = FALSE) กรอบข้อมูลอื่นประกอบด้วยคลังข้อมูลชื่อ Kantrowitz รุ่นที่ล้างแล้วโดยระบุเพศ นี่คือตัวอย่างเล็กน้อย: kantrowitz <- structure(list(name = c("john", "bill", "madison", "abby", "thomas"), gender = c("M", "either", "M", "either", "M")), .Names = c("name", "gender"), row.names = c(NA, 5L), class = c("tbl_df", "tbl", "data.frame")) โดยพื้นฐานแล้วฉันต้องการค้นหาเพศของชื่อจากtest_dataตารางโดยใช้kantrowitzตาราง เนื่องจากฉันจะสรุปสิ่งนี้เป็นฟังก์ชันencode_genderฉันจึงไม่รู้ชื่อคอลัมน์ในชุดข้อมูลที่จะใช้ดังนั้นฉันจึงไม่สามารถรับประกันได้ว่าจะเป็นnameเช่นkantrowitz$nameนั้น …
91 r  join  left-join  dplyr 

7
ความแตกต่างระหว่าง merge () และ concat () ในแพนด้า
อะไรคือความแตกต่างที่สำคัญระหว่างpd.DataFrame.merge()และpd.concat()? จนถึงตอนนี้นี่คือสิ่งที่ฉันพบโปรดแสดงความคิดเห็นว่าความเข้าใจของฉันสมบูรณ์และถูกต้องเพียงใด: .merge()สามารถใช้ได้เฉพาะคอลัมน์ (บวกดัชนีแถว) และเหมาะสำหรับการดำเนินการในรูปแบบฐานข้อมูล .concat()สามารถใช้ได้กับแกนใดแกนหนึ่งโดยใช้เฉพาะดัชนีและมีตัวเลือกในการเพิ่มดัชนีตามลำดับชั้น อนึ่งสิ่งนี้ทำให้เกิดความซ้ำซ้อนดังต่อไปนี้: ทั้งสองสามารถรวมสอง dataframes โดยใช้ดัชนีแถว pd.DataFrame.join() เพียงเสนอชวเลขสำหรับบางกรณีการใช้งานของ .merge() (หมีแพนด้าเก่งมากในการจัดการกรณีการใช้งานที่หลากหลายในการวิเคราะห์ข้อมูลอาจเป็นเรื่องที่น่ากังวลเล็กน้อยในการสำรวจเอกสารเพื่อหาวิธีที่ดีที่สุดในการทำงานบางอย่าง)
89 python  pandas  join  merge  concat 

10
เมื่อใดควรใช้ STRAIGHT_JOIN กับ MySQL
ฉันมีคำถามที่ค่อนข้างซับซ้อนที่ฉันกำลังทำงานอยู่และใช้เวลา 8 วินาทีในการเรียกใช้ EXPLAIN แสดงลำดับตารางแปลก ๆ และดัชนีของฉันไม่ได้ถูกใช้ทั้งหมดแม้จะมีคำใบ้ FORCE INDEX ก็ตาม ฉันเจอคีย์เวิร์ดเข้าร่วม STRAIGHT_JOIN และเริ่มแทนที่คีย์เวิร์ด INNER JOIN บางคำด้วยคีย์เวิร์ด ฉันสังเกตเห็นการปรับปรุงความเร็วอย่างมาก ในที่สุดฉันก็แทนที่คำหลัก INNER JOIN ทั้งหมดของฉันด้วย STRAIGHT_JOIN สำหรับคำค้นหานี้และตอนนี้มันทำงานใน. 01 วินาที คำถามของฉันคือคุณใช้ STRAIGHT_JOIN เมื่อใดและคุณใช้ INNER JOIN เมื่อใด มีเหตุผลใดบ้างที่จะไม่ใช้ STRAIGHT_JOIN หากคุณเขียนข้อความค้นหาที่ดี
88 mysql  join 

7
จะยกเว้นแถวที่ไม่รวมกับตารางอื่นได้อย่างไร
ฉันมีสองตารางหนึ่งมีคีย์หลักอื่น ๆ มีเป็นคีย์ต่างประเทศ ฉันต้องการดึงข้อมูลจากตารางหลักเฉพาะในกรณีที่ตารางรองไม่มีรายการที่มีคีย์ จัดเรียงตรงข้ามกับการรวมภายในแบบธรรมดาซึ่งส่งคืนเฉพาะแถวที่รวมเข้าด้วยกันด้วยคีย์
87 sql  join 

10
รวมผลลัพธ์หลายรายการในแบบสอบถามย่อยเป็นค่าเดียวที่คั่นด้วยจุลภาค
ฉันมีสองโต๊ะ: TableA ------ ID, Name TableB ------ ID, SomeColumn, TableA_ID (FK for TableA) ความสัมพันธ์เป็นหนึ่งแถวTableA- หลายแถวTableBหลาย ตอนนี้ฉันต้องการเห็นผลลัพธ์ดังนี้: ID Name SomeColumn 1. ABC X, Y, Z (these are three different rows) 2. MNO R, S สิ่งนี้จะไม่ทำงาน (ผลลัพธ์หลายรายการในแบบสอบถามย่อย): SELECT ID, Name, (SELECT SomeColumn FROM TableB WHERE F_ID=TableA.ID) FROM TableA นี่เป็นปัญหาเล็กน้อยหากฉันดำเนินการกับฝั่งไคลเอ็นต์ แต่นี้จะหมายความว่าฉันจะมีการเรียกใช้คำสั่ง X ในทุกหน้าที่ …
84 sql-server  tsql  join 

9
การเข้าร่วมองค์ประกอบของรายการหากองค์ประกอบเหล่านั้นอยู่ในระหว่างสองช่องว่าง
ฉันมีอินพุตเช่นนี้: ['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++'] ฉันต้องการเข้าร่วมองค์ประกอบระหว่าง''เพื่อให้ได้ผลลัพธ์เช่นนี้ ['assembly', 'python', 'java', 'ruby', 'javascript', 'c++'] ฉันลองใช้joinและแบ่งรายการแบบนี้: a=['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++'] a[2:5] = [''.join(a[ 2: 5])] a=['assembly', '', 'python', '', …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.