108 mysql
我有2张桌子.一个(域)具有域ID和域名(dom_id,dom_url).
另一个包含实际数据,其中2个列需要TO和FROM域名.所以我有两列rev_dom_from和rev_dom_for,两者都存储域表中的域名id.
简单.
现在我需要在网页上实际显示两个域名.我知道如何通过LEFT JOIN域ON review.rev_dom_for = domains.dom_url查询显示其中一个,然后你回显出dom_url,它将回显rev_dom_for列中的域名.
但是我如何让它在dom_rev_from列中回显出第二个域名呢?
Ste*_*ton 163
你会使用另一个连接,这些都是这样的:
SELECT toD.dom_url AS ToURL,
fromD.dom_url AS FromUrl,
rvw.*
FROM reviews AS rvw
LEFT JOIN domain AS toD
ON toD.Dom_ID = rvw.rev_dom_for
LEFT JOIN domain AS fromD
ON fromD.Dom_ID = rvw.rev_dom_from
Run Code Online (Sandbox Code Playgroud)
编辑:
您所做的只是多次加入表格.查看帖子中的查询:它从Reviews表中选择值(别名为rvw),该表为您提供了2个对Domain表的引用(FOR和FROM).
此时,将Domain表连接到Reviews表是一件简单的事情.一次(别名为D)表示FOR,第二次(别名为D)表示FROM.
然后在SELECT列表中,您将从DOMAIN表的两个LEFT JOINS中选择DOM_URL字段,通过每个参与Domains表引用的表别名引用它们,并将它们别名为ToURL和FromUrl.
有关SQL中别名的更多信息,请阅读此处.
鉴于以下表格..
Domain Table
dom_id | dom_url
Review Table
rev_id | rev_dom_from | rev_dom_for
Run Code Online (Sandbox Code Playgroud)
试试这个sql ...(这与Stephen Wrighton上面写的几乎相同)诀窍在于你基本上是在同一个查询中从域表中选择两次并加入结果.
Select d1.dom_url, d2.dom_id from
review r, domain d1, domain d2
where d1.dom_id = r.rev_dom_from
and d2.dom_id = r.rev_dom_for
Run Code Online (Sandbox Code Playgroud)
如果你仍然卡住了,请更具体,确切地说是你不明白.
| 归档时间: |
|
| 查看次数: |
104732 次 |
| 最近记录: |