有一个简单的变量:
$productId = 1;
还有3张桌子。
Product_Document(字典 ProductID - DocumentID)
| ProductID | DocumentID |
|-----------+------------|
| 1 | 20 |
Document_IndicNozology(DocumentID - NozologyCode 字典)
| DocumentID | NozologyCode |
|------------+--------------|
| 20 | B24.. |
以及存储必要信息的 Nozology表
| NozologyCode | NozologyContent |
|--------------+------------------|
| B24.. | Описание болезни |
是否可以在一个查询中使用LEFT JOIN
和变量$productId
从第三个表中获取必要的信息?我尝试获取这样的数据:
$request = "SELECT * FROM Nozology
LEFT JOIN Document_IndicNozology ON Document_IndicNozology.NozologyCode = Nozology.NozologyCode
LEFT JOIN Product_Document ON Product_Document.DocumentID = Document_IndicNozology.DocumentID
WHERE Product_Document.ProductID = $productId";
但不幸的是,它什么也没提供(没有返回数据)。
解决此类问题的一般建议。
第 3 款也应细分为分段。我们有三个表和两个连接。- 所以首先我们在每个表中分别使用 WHERE 进行三个简单的选择,并确保数据在那里。- 之后,我们加入前两个表,看看它是否返回任何东西 - 之后,我们加入后两个表,看看同样的事情 - 只有在那之后,我们才加入所有三个
该计划失败的点将揭示整个查询失败的原因。在这种情况下,您需要检查表中的特定数据。
问题的解决方案: