所以我需要制作一个像这样的strsql:
strSQL = "SELECT "
strSQL = strSQL & " tblclips.fldclipid, "
strSQL = strSQL & " tblPlatenfirma.fldplatenfirmaID, "
strSQL = strSQL & " tblClips.fldUitvoerder, "
strSQL = strSQL & " tblClips.fldTitel, "
strSQL = strSQL & " tblPlatenfirma.fldnaam"
strSQL = strSQL & " FROM "
strSQL = strSQL & " tblClips "
strSQL = strSQL & " INNER JOIN tblPlatenfirma "
strSQL = strSQL & " ON tblClips.fldplatenfirmaid = tblPlatenfirma.fldplatenfirmaID"
strWHERE = ""
但是我得到了一个我不理解的SQL代码,结果我无法创建一个strSQL,我真的需要这个用于学校项目,我还剩下几天。这是我不明白的SQL:
选择tbluurroosterleerkracht.flduurroosterleerkrachtID AS uurroosterID,tblklas.fldnaam AS克拉斯,tbllokaal.fldnummer AS Hoofdlokaal,tblvak.fldvak AS Vak上升,tbllokaal_1.fldnaam AS LesLokaal,tbllokaal_2.fldbeschikbaar AS beschikbaar,tblleerkracht.fldnaam AS NaamLeerkrachtNormaal,tblleerkracht.fldvoornaam AS VoornaamLeerkrachtnormaal,tbldag.flddag AS Dag,tbllesuur.fldvan AS Van,tbllesuur.fldtot AS Tot FROM(((tbllokaal AS tbllokaal_2 RIGHT JOIN(tblvervangingen LEFT JOIN tblleerkracht AS tblleerkracht_1 ON tblvervangingen.fldleerkrachtID = tblleerkracht_1.fldleerkrachtID)ON = tbllokaal_2.fldlokaalID tblvervangingen.fldlokaalID)LEFT JOIN tbltaak ON tblvervangingen.fldtaakID = tbltaak.fldtaakID)LEFT JOIN tblleerkracht AS tblleerkracht_2 ON tbltaak.fldleerkrachtID = tblleerkracht_2.fldleerkrachtID)RIGHT JOIN(((tbllokaal AS tbllokaal_1 INNER JOIN(((tbldag INNER JOIN(tblklas INNER JOIN tbluurroosterleerkracht ON tblklas.fldklasID = tbluurroosterleerkracht.fldklasID)ON = tbldag.flddagID tbluurroosterleerkracht.flddagID)INNER JOIN tblvak ON tbluurroosterleerkracht.fldvakID = tblvak.fldvakID)INNER JOIN tbllokaal ON tblklas.fldlokaalID = tbllokaal.fldlokaalID)ON = tbllokaal_1.fldlokaalID tbluurroosterleerkracht.fldlokaalID)INNER JOIN tbllesuur ON tbluurroosterleerkracht.fldlesuurID = tbllesuur.fldlesuurID)INNER JOIN tblleerkracht ON tbluurroosterleerkracht。 fldleerkrachtID = tblleerkracht.fldleerkrachtID)ON tblvervangingen.flduurroosterleerkrachtID = tbluurroosterleerkracht.flduurroosterleerkrachtID ORDER BY tblleerkracht.fldnaam,tblleerkracht.fldvoornaam,tbldag.flddag,tbllesuur.fldvan;
答案 0 :(得分:0)
这是一个不寻常的SQL查询。你确定它会产生你想要的结果吗?
在尝试理解代码时,对其进行格式化非常有用,这样您就可以清楚地看到它的每个部分。对于大型SQL查询和具有大量嵌套括号位的代码尤其如此。
这是应用了粗略格式的SQL ...
SELECT
tbluurroosterleerkracht.flduurroosterleerkrachtID AS uurroosterID,
tblklas.fldnaam AS Klas,
tbllokaal.fldnummer AS Hoofdlokaal,
tblvak.fldvak AS Vak,
tbllokaal_1.fldnaam AS LesLokaal,
tbllokaal_2.fldbeschikbaar AS beschikbaar,
tblleerkracht.fldnaam AS NaamLeerkrachtNormaal,
tblleerkracht.fldvoornaam AS VoornaamLeerkrachtnormaal,
tbldag.flddag AS Dag,
tbllesuur.fldvan AS Van,
tbllesuur.fldtot AS Tot
FROM
(
(
(tbllokaal AS tbllokaal_2
RIGHT JOIN (tblvervangingen
LEFT JOIN tblleerkracht AS tblleerkracht_1
ON tblvervangingen.fldleerkrachtID = tblleerkracht_1.fldleerkrachtID
)
ON tbllokaal_2.fldlokaalID = tblvervangingen.fldlokaalID
)
LEFT JOIN tbltaak
ON tblvervangingen.fldtaakID = tbltaak.fldtaakID
)
LEFT JOIN tblleerkracht AS tblleerkracht_2
ON tbltaak.fldleerkrachtID = tblleerkracht_2.fldleerkrachtID
)
RIGHT JOIN
(
(
(tbllokaal AS tbllokaal_1
INNER JOIN
(
(
(tbldag
INNER JOIN
(tblklas
INNER JOIN tbluurroosterleerkracht
ON tblklas.fldklasID = tbluurroosterleerkracht.fldklasID
)
ON tbldag.flddagID = tbluurroosterleerkracht.flddagID
)
INNER JOIN tblvak
ON tbluurroosterleerkracht.fldvakID = tblvak.fldvakID
)
INNER JOIN tbllokaal
ON tblklas.fldlokaalID = tbllokaal.fldlokaalID
)
ON tbllokaal_1.fldlokaalID = tbluurroosterleerkracht.fldlokaalID
)
INNER JOIN tbllesuur
ON tbluurroosterleerkracht.fldlesuurID = tbllesuur.fldlesuurID
)
INNER JOIN tblleerkracht
ON tbluurroosterleerkracht.fldleerkrachtID = tblleerkracht.fldleerkrachtID
)
ON tblvervangingen.flduurroosterleerkrachtID = tbluurroosterleerkracht.flduurroosterleerkrachtID
ORDER BY
tblleerkracht.fldnaam,
tblleerkracht.fldvoornaam,
tbldag.flddag,
tbllesuur.fldvan;
你有不明白的具体部分吗?
我认为尽管不了解SQL是如何工作的。您的字符串构建方法仍应作为将sql存储在程序变量中的方法。