Mengapa selepas RIGHT JOIN, baris dalam jadual 2 yang tidak sepadan dengan jadual 1 dikecualikan?
P粉668146636
P粉668146636 2023-08-20 21:18:55
0
1
407
<p>Saya perlu menyertai dua jadual: `our_sample` dan `tls207_pers_appln`, yang datang daripada PATSTAT. </p> <p>`our_sample` mempunyai 4 lajur: appln_id, appln_auth, appln_nr, appln_kind. </p> <p>`tls207_pers_appln` mempunyai 4 lajur: appln_id, person_id, applt_seq_nr, invt_seq_nr. </p> <p>`our_sample` mempunyai 2191 baris, sebahagian daripadanya (60 baris) tidak mempunyai data yang sepadan dalam `tls207_pers_appln`. </p> <p>Oleh kerana saya ingin menyimpan semua appln_id dalam `our_sample` (walaupun mereka tidak mempunyai maklumat yang sepadan dalam `tls207_pers_appln`), saya menggunakan RIGHT JOIN untuk menyertai dua jadual. </p> <p>Walau bagaimanapun, paparan terjana `t2_tot_in_patent` hanya mempunyai 2096 appln_id. </p> <p>Ini sebahagiannya disebabkan oleh sekatan yang saya tetapkan (35 paten telah dibuang kerana saya hanya memilih yang mempunyai `HAVING MAX(invt_seq_nr) > 0`, yang boleh diterima). Tetapi ini sepatutnya menghasilkan 2191-35 = 2156 paten. </p> <p>Sebaliknya, saya mendapat 2096 paten, iaitu: 2191 (dalam sampel_kami) - 60 (id_appln_tiada dalam sampel_kami) - 35 (id_apl dengan invt_seq_nr = 0). </p> <p>Tetapi tujuan keseluruhan menggunakan RIGHT JOIN ialah 60 paten ini tidak sepatutnya hilang. Kenapa jadi begini? </p> <pre class="brush:php;toolbar:false;">--Kompilasikan jumlah bilangan pencipta setiap paten: t2_tot_in_patent DROP VIEW JIKA WUJUD t2_tot_dalam_paten; BUAT VIEW t2_tot_in_patent AS PILIH m.appln_id, MAX(invt_seq_nr) AS tot_in_patent DARIPADA patstat2022a.tls207_pers_appln AS t7 KANAN LUAR SERTAI cecilia.our_sample SEBAGAI m HIDUP t7.appln_id = m.appln_id KUMPULAN OLEH appln_id MEMPUNYAI MAX(invt_seq_nr) > <p><br /></p>
P粉668146636
P粉668146636

membalas semua(1)
P粉350036783

Cadangan:

GROUP BY m.appln_id

Mungkin SQL sedang mengumpulkan mengikut appln_id jadual lain.

Cuba ini:

HAVING MAX(invt_seq_nr) > 0 OR MAX(invt_seq_nr) IS NULL

Pada masa ini kod anda hanya mendapat baris yang nilai maksimumnya lebih besar daripada 0, tetapi baris yang tidak wujud dalam jadual lain diabaikan kerana nilainya ialah NULL.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan