简体   繁体   English

JOIN许多表中的未知列

[英]Unknown column in JOIN many tables

can u guys help me fix this up.. 你们能帮我解决这个问题吗?

the error said ' Unknown column 'd.idspesialis' in 'on clause' ' 错误显示为“ on子句中的未知列'd.idspesialis”'

SELECT a.*, b.*, c.*,  e.*,d.*, f.*,g.*
FROM ckehamilan a 
    INNER JOIN  pasien  b 
            ON a.noRM=b.noRM 
    INNER JOIN ( select idPegawai , NamaPegawai as NamaDokter from tpegawai )  d 
            ON a.idPegawai=d.idPegawai 
     LEFT JOIN spesialis e 
            ON e.idspesialis=d.idspesialis 
    INNER JOIN ( select idPegawai , NamaPegawai as NamaParamedis from  tpegawai )  f 
            ON a.idparamedis=f.idPegawai 
     LEFT JOIN imunisasi g 
            ON a.idimunisasi=g.idimunisasi
    INNER JOIN  ruang  c 
            ON a.idruang=c.idruang 

your subquery doesn't have column idspesialis 您的子查询没有列idspesialis

try this, 尝试这个,

(
    SELECT idPegawai, NamaPegawai AS NamaDokter, idspesialis
    FROM tpegawai
) d

your full query should look like below, 您的完整查询应如下所示,

SELECT a.*
    , b.*
    , c.*
    , e.*
    , d.*
    , f.*
    , g.*
FROM ckehamilan a
    INNER JOIN pasien b
        ON a.noRM = b.noRM
    INNER JOIN 
        (
            SELECT idPegawai, NamaPegawai AS NamaDokter, idspesialis
            FROM tpegawai
        ) d
        ON a.idPegawai = d.idPegawai
    LEFT JOIN spesialis e
        ON e.idspesialis = d.idspesialis
    INNER JOIN 
        (
            SELECT idPegawai , NamaPegawai AS NamaParamedis
            FROM tpegawai
        ) f
        ON a.idparamedis = f.idPegawai
    LEFT JOIN imunisasi g
        ON a.idimunisasi = g.idimunisasi
    INNER JOIN ruang c
        ON a.idruang = c.idruang

In your table with alias d , you do not have a column named d.idspesialis and hence it is throwing the error. 在别名为d的表中,没有名为d.idspesialis的列,因此它d.idspesialis了错误。

Your d table is as below - 您的d表如下-

( select idPegawai , NamaPegawai as NamaDokter from tpegawai )  d 

and you are trying to add join with e as 并且您正在尝试使用添加e

e.idspesialis=d.idspesialis 

You have to add that column in Inner select query to use in parent query. 您必须在内部选择查询中添加该列以在父查询中使用。 Check below query: 检查以下查询:

INNER JOIN ( SELECT idPegawai , NamaPegawai AS NamaDokter, idspesialis  FROM tpegawai )  d ON a.idPegawai=d.idPegawai 

Full Query: 完整查询:

SELECT a.*, b.*, c.*,  e.*,d.*, f.*,g.* 
FROM ckehamilan a 
INNER JOIN  pasien  b ON a.noRM=b.noRM 
INNER JOIN ( SELECT idPegawai , NamaPegawai AS NamaDokter, idspesialis  FROM tpegawai )  d ON a.idPegawai=d.idPegawai 
LEFT JOIN spesialis e ON e.idspesialis=d.idspesialis 
INNER JOIN ( SELECT idPegawai , NamaPegawai AS NamaParamedis FROM  tpegawai )  f ON a.idparamedis=f.idPegawai 
LEFT JOIN imunisasi g ON a.idimunisasi=g.idimunisasi
INNER JOIN  ruang  c ON a.idruang=c.idruang 

Try this :: 尝试这个 ::

 select a.*, b.*, c.*,  e.*,d.idPegawai, d.NamaPegawai as NamaDokter, g.*, f.*
  from ckehamilan a 
   INNER JOIN  pasien  b ON a.noRM=b.noRM 
   INNER JOIN tpegawai  d ON a.idPegawai=d.idPegawai 
   LEFT JOIN spesialis e ON e.idspesialis=d.idspesialis 
   LEFT JOIN imunisasi g ON a.idimunisasi=g.idimunisasi
INNER JOIN tpegawai f ON a.idparamedis = f.idPegawai
    INNER JOIN  ruang  c ON a.idruang=c.idruang 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM