Saya pada dasarnya membuat tabel pencarian untuk tiga tabel saya tetapi tidak melakukan apa yang saya inginkan. 3 tabel tersebut dibuat dengan memuat 3 file csv yang berbeda.

Apa yang saya coba lakukan adalah memasukkan ID dari tabel itu ke dalam pencarian.

Inilah yang terus saya dapatkan:

---------------Lookuptable---------------
|lookup_ID|Table1_ID|Table2_ID|Table3_ID|
|    1    |    1     |        |         |   
|    2    |    2     |        |         | 
|    3    |    3     |        |         |
|         |          |    1   |         |
|         |          |    2   |         |
|         |          |    3   |         |
|         |          |        |    1    |
|         |          |        |    2    |
|         |          |        |    3    |

Yang saya butuhkan adalah:

---------------Lookuptable---------------
|lookup_ID|Table1_ID|Table2_ID|Table3_ID |
|    1    |    1     |    1    |    1    |   
|    2    |    2     |    2    |    2    | 
|    3    |    3     |    3    |    3    |

Saya agak mengerti mengapa ini terjadi, ia menyisipkan satu baris di bawah setiap kali dengan satu sisipan seperti

insert into Lookuptable(Table1_ID) select T1id from Table1;
and the others...

Tapi saya sudah mencoba yang bersarang juga seperti

insert into Lookuptable(Table1_ID, Table2_ID, Table3_ID) 
select Table1.T1id, Table2.T2id, Table2.T2id from Table1, Table2, Table3;

Tapi tetap tidak berhasil. Sebenarnya yang satu ini hanya membuat crash server Mysql dan memiliki kueri yang tak ada habisnya di Postgres. Saya sudah mencoba contoh bersarang lainnya tetapi tidak ada yang berhasil.

Saya juga menggunakan Kunci Asing yang berfungsi ketika saya memasukkan nilai baru secara manual, tetapi karena tabel lain berasal dari file CSV yang dimuat, saya harus memasukkan nilai yang sudah ada di sana secara manual.

Aku benar-benar tidak yakin apa yang harus dilakukan.

0
Aspir3l 23 April 2020, 06:07

1 menjawab

Jawaban Terbaik

Jika saya mengerti dengan benar apa yang Anda inginkan, sesuatu seperti ini akan berhasil

https://www.db-fiddle.com/f/k6CGsVXazSqJDfwKkdr6S7/1

SET @i:=0,@j:=0,@h:=0;

INSERT INTO Lookuptable
SELECT NULL,t1.ID,t2.ID,t3.ID FROM 
( SELECT @i:=(@i+1) AS temp_id,ID FROM Table1 ) t1
INNER JOIN
( SELECT @j:=(@j+1) AS temp_id ,ID FROM Table2 ) t2 ON t1.temp_id=t2.temp_id
INNER JOIN
( SELECT @h:=(@h+1) AS temp_id ,ID FROM Table3 ) t3 ON t2.temp_id=t3.temp_id;
0
George Pant 23 April 2020, 04:47