我有两张桌子。一个(域)具有域ids和域名(dom_id、dom_url)。
另一个包含实际数据,其中2列需要域名的收件人和发件人。因此,我有两个列rev_dom_from和rev_dom_for,这两个列都存储了域表中的域名id。
很简单。
现在我需要在网页上实际显示这两个域名。我知道如何通过左连接domain ON reviews.rev_dom_for = domains.dom_url查询显示其中之一,然后回显dom_url,这将回显rev_dom_for列中的域名。
但是我如何让它在dom_rev_from列中回显出第二个域名呢?
发布于 2008-10-14 03:43:45
您可以使用另一个连接,如下所示:
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编辑__:
您所要做的就是多次加入表中。看看帖子中的查询:它从Reviews表(别名为rvw)中选择值,该表为您提供了2个对Domain表的引用(一个FOR和一个FROM)。
此时,将Domain表左连接到Reviews表是一件很简单的事情。一次(别名为toD)用于FOR,第二次(别名为fromD)用于FROM。
然后,在选择列表中,您将从域表的两个左侧联接中选择DOM_URL字段,通过引用Domains表的每个联接的表别名来引用它们,并将它们的别名命名为ToURL和FromUrl。
有关SQL中别名的更多信息,请阅读here。
发布于 2008-10-14 05:04:09
给出下表..
Domain Table
dom_id | dom_url
Review Table
rev_id | rev_dom_from | rev_dom_for尝试此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如果你仍然被卡住了,请更具体地说明你不明白的地方。
发布于 2013-02-09 14:35:03
阅读这篇文章并尝试一下,这将对你有所帮助:
Table1
column11,column12,column13,column14Table2
column21,column22,column23,column24
SELECT table1.column11,table1.column12,table2asnew1.column21,table2asnew2.column21
FROM table1 INNER JOIN table2 AS table2asnew1 ON table1.column11=table2asnew1.column21 INNER TABLE table2 as table2asnew2 ON table1.column12=table2asnew2.column22table2asnew1是与table1.column11=table2asnew1.column21匹配的表2的一个实例
和
table2asnew2是与table1.column12=table2asnew2.column22匹配的表2的另一个实例
https://stackoverflow.com/questions/199953
复制相似问题