1
OK,我有以下表能弄清楚這個查詢
+-------------------+
| FMdonnee |
+-------------------+
| uGuid |
| ... |
| uGuid_FMchampForm |
| uGuid_FMdoc |
+-------------------+
+-------------------+
| FMchampForm |
+-------------------+
| uGuid |
| ... |
| uGuid_FMgroup |
| uGuid_FMsection |
+-------------------+
+-------------------+
| FMgroup |
+-------------------+
| uGuid |
| ... |
+-------------------+
uGuid是所有表的主鍵,它的類型是唯一標識符
FMchampForm總是支持有數據,但它的外鍵uGuid_FMgroup可能空值。 FMdonnee表中可能有一些數據。我試圖從FMchampForm中獲取與FMchamp(FMchampform的fk)匹配的所有數據,並且如果FMdonnee或FMgroup中的數據附加到FMchampForm的這個條目中,我希望將它們提取出來。
我試了下面。女巫是差不多好了,除了它不會採取FMchampForm條目;如果沒有來自FMdonnee
附加數據SELECT cf.cNom nom_cf
, cf.iPosition pos_cf
, cf.cTypeValeur typVal_cf
, cf.bActif actif_cf
, cf.cCommentaire com_cf
, cf.bLabelVisible lblVisible_cf
, cf.cPadding pad_cf
, cf.bMultiLines multiLines_cf
, cf.bStartLine startLine_cf
, g.cNom nom_g
, g.iPosition pos_g
, g.iNbRepTemplate nbRepTemplate_g
, g.cCommentaire com_g
, g.cPadding pad_g
, g.bLabelVisible lblVisible_g
, g.bIsBreakable isBreakable_g
, d.cValeur valeur_d
, d.cGroupe groupe_d
, d.uGuid_FMunite guidUnite_d
FROM FMdonnee d, FMchampForm cf
LEFT JOIN FMgroup g ON cf.uGuid_FMgroup = g.uGuid
WHERE cf.uGuid_FMsection = @guidFMsection
AND d.uGuid_FMchampForm = cf.uGuid
AND d.uGuid_FMdoc = @guidFMdoc
ORDER BY g.iPosition ASC, d.cGroupe ASC, cf.iPosition ASC, cf.cNom ASC
我想我需要的LEFT JOIN的FMdonnee,但我不知道如何加入它也FMchampForm 。我希望我明白足以讓你瞭解我想要做什麼
謝謝你這個工作了。可以給我一個隱式的左連接的例子嗎?顯式連接是通過使用關鍵字JOIN? – 2013-04-26 12:04:43
@im_a_noob:是的,顯式連接是通過使用關鍵字JOIN,並使用包含連接條件的ON子句在連接的表名後進行的 - 隱式連接是列出表的位置,以逗號分隔,並且鏈接條件爲WHERE子句。 – 2013-04-26 12:11:57
所有權利,所以沒有真正的方法來做一個隱式的左加入吧? – 2013-04-26 12:13:29