Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dapatkan kerangka data R dengan nilai gabungan dari beberapa tabel MySQL

Ini akan lebih umum, dengan asumsi bahwa jumlah tabel yang Anda hadapi adalah variabel. Itu juga mengganti nama kolom seperti yang Anda inginkan dalam fungsi aslinya:

library(RMySQL)

##  Open database:
mydb = dbConnect(MySQL(), user='root', password='', dbname='DataBase')

##  Create function to get values:
GetVals <- function(TableNames) {
    query <- paste0("SELECT ", Tables[1], ".Chr AS chrom, ", Tables[1], ".start AS site, ")
    query <- paste0(query, paste0(Tables, ".methylation AS ", Tables, collapse=", "))
    query <- paste0(query, " FROM ", Tables[1], paste0(" JOIN ", Tables[-1], " ON ", Tables[1], ".Chr=", Tables[-1], ".Chr AND ", Tables[1], ".start=", Tables[-1], ".start", collapse=""))

  rs <- dbSendQuery(mydb, query)
  data <- fetch(rs, n=-1)
  return(data)
}

Tables <- c("Table1", "Table2", "Table3", "Table4")

my_data <- GetVals(Tables)

Ini adalah kueri yang dihasilkan untuk Tables variabel di atas:

> query
[1] "SELECT Table1.Chr AS chrom, Table1.start AS site, Table1.methylation AS Table1, Table2.methylation AS Table2, Table3.methylation AS Table3, Table4.methylation AS Table4 FROM Table1 JOIN Table2 ON Table1.Chr=Table2.Chr AND Table1.start=Table2.start JOIN Table3 ON Table1.Chr=Table3.Chr AND Table1.start=Table3.start JOIN Table4 ON Table1.Chr=Table4.Chr AND Table1.start=Table4.start"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menemukan semua orang tua di tabel mysql dengan satu kueri (Kueri Rekursif)

  2. Gunakan Access atau MySQL sebagai database backend

  3. Indeks melewati batas susunan

  4. MySql memuat data infile STR_TO_DATE kembali kosong?

  5. OpenShift webapps mysql koneksi java