I am really confused with this codes. I have query like this
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `aIPK` AS select
`i
I don't know what the exact problem(s) is, but your WHERE
clause has a problem:
WHERE IPK IS NOT NULL
It is not allowed to refer to a column alias in the WHERE
clause, because its value may not be determined yet. Instead, you should use this:
WHERE akdhis_kelanjutanstudi.IPK IS NOT NULL
Update:
The parentheses you used in your original view look strange, unnecessary, and possibly wrong. Try using the following:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`
SQL SECURITY DEFINER VIEW aIPK AS
SELECT t4.Kode AS Fakultas,
t3.Kode AS Departemen,
t1.NIM AS NIM,
t1.TahunMasuk AS TahunMasuk,
t6.IPK AS IPK
FROM akdmst_mahasiswamagister t1
LEFT JOIN akdmst_mayor t2
ON t1.MayorID = t2.ID
LEFT JOIN ipbmst_departemen t3
ON t2.DepartemenID = t3.ID
LEFT JOIN ipbmst_fakultason t4
ON t3.FakultasID = t4.ID
LEFT JOIN ipbmst_orang t5
ON t1.NIM = t5.NIMS2Key
LEFT JOIN akdhis_kelanjutanstudi t6
ON t6.NIM = t5.NIMS2Key
WHERE t6.IPK IS NOT NULL
ORDER BY NIM
LIMIT 100;
Running sql instead of creating algorithm is easier for testing.
In your case check the conditions in join
on((`akdhis_kelanjutanstudi`.`NIM` = `ipbmst_orang`.`NIMS2Key`)))
also you need to change
WHERE `akdhis_kelanjutanstudi`.`IPK` IS NOT NULL
To
WHERE `IPK` IS NOT NULL
you have mistake in your description,
your tables are
table 1: akdhis_mahasiswamagister (ID, MahasiswaID, NIM, MayorID, TahunMasuk) table 2: akdmst_mayor(ID, DepartemenID) table 3: ipbmst_departemen(ID, FakultasID, DepartmenName) table 4: ipbmst_fakultas(ID, FacultyName) table 5: ipbmst_orang(ID, Name, NIMS2Key) table 6: akdhis_kelanjutanstudi(ID, NIM, IPK)
but i dont see "akdhis_mahasiswamagister" table in your select
CREATE ALGORITHM=UNDEFINED DEFINER=root
@localhost
SQL SECURITY DEFINER VIEW aIPK
AS select
ipbmst_fakultas
.Kode
AS Fakultas
,
ipbmst_departemen
.Kode
AS Departemen
,
akdmst_mahasiswamagister
.NIM
AS NIM
,
akdmst_mahasiswamagister
.TahunMasuk
AS TahunMasuk
,
akdhis_kelanjutanstudi
.IPK
AS IPK
from (((((akdmst_mahasiswamagister
inner join akdmst_mayor
on((akdmst_mahasiswamagister
.MayorID
= akdmst_mayor
.ID
)))
inner join ipbmst_departemen
on((akdmst_mayor
.DepartemenID
= ipbmst_departemen
.ID
)))
inner join ipbmst_fakultas
on((ipbmst_departemen
.FakultasID
= ipbmst_fakultas
.ID
)))
inner join ipbmst_orang
on((akdmst_mahasiswamagister
.NIM
= ipbmst_orang
.NIMS2Key
)))
inner join akdhis_kelanjutanstudi
on((akdhis_kelanjutanstudi
.NIM
= ipbmst_orang
.NIMS2Key
)))
WHERE IPK IS NOT NULL
order by NIM LIMIT 100;
akdhis_mahasiswamagister and akdmst_mahasiswamagister are different? may you are using wrong table, and so you have incorrect information