问题:如何使用两个不同的列连接两个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_id
和media_id
相关联的文件名。如何将两者合并到一个SELECT命令中?
答案 0 :(得分:1)
加入DescriptionTable
到ResultsTable
两次,一次在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_id
和media_id
文件名的行,这些行对应ResultsTable
行中的ID对。