首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将这两个查询中的多个连接连接在一起?

如何将这两个查询中的多个连接连接在一起?
EN

Stack Overflow用户
提问于 2018-01-16 22:30:06
回答 2查看 35关注 0票数 0

因此,我有两个查询需要在word_pdf_cords.lineNumber上联接。这两个查询本身也由连接组成。我不知道MySQL的语法,所以我有点吃力。

查询一

代码语言:javascript
运行
复制
Select pdf.html_path,pdf.xml_path, 
word.word_Value,word_pdf.word_pdf_ID,word_pdf_cords.word_pdf_cords_ID,
word_pdf_cords.word_pdf_ID,word_pdf_cords.pageNumber,
word_pdf_cords.lineNumber 

FROM word_pdf

INNER JOIN pdf ON pdf.PDF_ID = word_pdf.PDF_ID

Inner Join word ON word.word_ID = word_pdf.word_ID

Inner Join word_pdf_cords ON word_pdf.word_pdf_ID = 
word_pdf_cords.word_pdf_ID

WHERE word.word_Value ="clocks"

问题二

代码语言:javascript
运行
复制
Select pdf.html_path,pdf.xml_path, 
word.word_Value,word_pdf.word_pdf_ID,word_pdf_cords.word_pdf_cords_ID,
word_pdf_cords.word_pdf_ID,word_pdf_cords.pageNumber,
word_pdf_cords.lineNumber 

FROM word_pdf

INNER JOIN pdf ON pdf.PDF_ID = word_pdf.PDF_ID

Inner Join word ON word.word_ID = word_pdf.word_ID

Inner Join word_pdf_cords ON word_pdf.word_pdf_ID = 
word_pdf_cords.word_pdf_ID

WHERE word.word_Value ="pirates"

我需要在pdf_cords.lineNumber上连接这两个查询的结果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-18 03:43:40

这似乎是有效的,但不是在大量数据上。如果有人知道更多关于数据库查询优化,可以给我一些指导,那将是很好的。

代码语言:javascript
运行
复制
Select 

q1.html_path,q1.xml_path,q1.word_Value,q1.pageNumber,q1.lineNumber,
q2.word_Value FROM

 (SELECT pdf.html_path,pdf.xml_path, 
word.word_Value,word_pdf_cords.pageNumber,
word_pdf_cords.lineNumber FROM word_pdf INNER JOIN pdf ON pdf.PDF_ID = 
word_pdf.PDF_ID Inner Join word ON word.word_ID = word_pdf.word_ID Inner 
Join word_pdf_cords ON word_pdf.word_pdf_ID = word_pdf_cords.word_pdf_ID 
WHERE word.word_Value ="John")

as q1

 JOIN (SELECT pdf.html_path,pdf.xml_path, 
word.word_Value,word_pdf_cords.pageNumber,word_pdf_cords.lineNumber FROM 
word_pdf INNER JOIN pdf ON pdf.PDF_ID = word_pdf.PDF_ID Inner Join word ON 
word.word_ID = word_pdf.word_ID Inner Join word_pdf_cords ON 
word_pdf.word_pdf_ID = word_pdf_cords.word_pdf_ID WHERE word.word_Value 
="Smith")

as q2 ON q1.html_path = q2.html_path and q1.pageNumber = 

q2.pageNumber and q1.lineNumber = q2.lineNumber
票数 0
EN

Stack Overflow用户

发布于 2018-01-16 22:41:03

据我所知,唯一的区别在于WHERE子句,因此您可以只联接where子句,而不是同时联接两个查询:

代码语言:javascript
运行
复制
WHERE word.word_Value ="pirates" OR word.word_Value ="clocks"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48283548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档