Zul*_*ger 6 mysql sql join subquery
我有以下查询:
SELECT PKID, QuestionText, Type
FROM Questions
WHERE PKID IN (
SELECT FirstQuestion
FROM Batch
WHERE BatchNumber IN (
SELECT BatchNumber
FROM User
WHERE RandomString = '$key'
)
)
Run Code Online (Sandbox Code Playgroud)
我听说子查询效率低下,因此首选联接。但是,我找不到任何解释如何将3层以上子查询转换为联接表示法的内容,而且也无法解决。
谁能解释怎么做?
SELECT DISTINCT a.*
FROM Questions a
INNER JOIN Batch b
ON a.PKID = b.FirstQuestion
INNER JOIN User c
ON b.BatchNumber = c.BatchNumber
WHERE c.RandomString = '$key'
Run Code Online (Sandbox Code Playgroud)
之所以DISTINCT指定,是因为可能存在与其他表上的多行匹配的行,从而导致结果重复记录。但是由于您只对表上的记录感兴趣Questions,因此DISTINCT关键字就足够了。
要进一步获得有关联接的知识,请访问以下链接:
| 归档时间: |
|
| 查看次数: |
8678 次 |
| 最近记录: |