带有两个WHERE子句的MySQL SELECT语句

时间:2015-08-11 20:33:18

标签: php mysql

问题:如何使用两个不同的列连接两个MySQL表?

我有两个MySQL表。

**DescriptionTable**. Fields: {filename, ID}.
**ResultsTable**. Fields: {query_id, media_id}. Both fields reference the ID field in the DescriptionTable.

“match”将query_id链接到指定的media_id,并将一个条目添加到ResultsTable中。

我希望它能够执行SELECT查询以检索以下内容:

[filename (query_id), filename (media_id)]

我尝试过什么

SELECT a.filename
FROM DescriptionTable a, ResultsTable b
WHERE a.id = b.query_id

...但这仅提供了query_id的文件名,而不是与query_idmedia_id相关联的文件名。如何将两者合并到一个SELECT命令中?

1 个答案:

答案 0 :(得分:1)

加入DescriptionTableResultsTable两次,一次在query_id上,一次在media_id上。

SELECT dq.filename as query_filename, dm.filename as media_filename
FROM ResultsTable r
INNER JOIN DescriptionTable dq ON r.query_id = dq.ID
INNER JOIN DescriptionTable dm on r.media_id = dm.ID

这应返回包含query_idmedia_id文件名的行,这些行对应ResultsTable行中的ID对。