mysql下载 - 你如何在mysql中连接两次同一张表?




mysql学习 mysql介绍 (4)

我有两张桌子。 一个(域)具有域ID和域名(dom_id,dom_url)。

另一个包含实际数据,其中2个列需要TO和FROM域名。 所以我有两个列rev_dom_from和rev_dom_for,它们都存储域名表中的域名ID。

简单。

现在我需要在网页上实际显示两个域名。 我知道如何通过LEFT JOIN域进行reviews.rev_dom_for = domains.dom_url查询来显示其中一个或另一个,然后回显出dom_url,这会在rev_dom_for列中回显域名。

但是,我如何让它在dom_rev_from列中回显第二个域名呢?


Answers

鉴于以下表格..

Domain Table
dom_id | dom_url

Review Table
rev_id | rev_dom_from | rev_dom_for

尝试这个SQL ...(这几乎是斯蒂芬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

如果你仍然陷入困境,请更确切地说明你确实不明白。


你会使用另一个连接,沿着这些线:

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

编辑

你所做的只是多次加入表格。 查看帖子中的查询:它从评论表中选择值(别名为rvw),该表为您提供2个对域表(FOR和FROM)的引用。

在这一点上,将域表添加到评论表是一件简单的事情。 一次(用toD替代FOR),第二次(从D替换为FROM)。

然后在SELECT列表中,您将从DOMAIN表的两个LEFT JOINS中选择DOM_URL字段,并通过每个对Domains表的连接引用的表别名引用它们,并将它们别名为ToURL和FromUrl。

有关SQL中别名的更多信息,请阅读here


阅读并尝试,这将帮助你:

表格1

column11,column12,column13,column14

表2

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.column22

table2asnew1是表2的一个实例,它由table1.column11=table2asnew1.column21匹配

table2asnew2是表2的另一个实例,它由table1.column12=table2asnew2.column22匹配


你可以像这样使用内部连接更新另一个表中的值

UPDATE [table1_name] AS t1 INNER JOIN [table2_name] AS t2 ON t1.column1_name] = t2.[column1_name] SET t1.[column2_name] = t2.column2_name];

按照这里了解如何使用此查询http://www.voidtricks.com/mysql-inner-join-update/

或者您可以使用select作为子查询来执行此操作

UPDATE [table_name] SET [column_name] = (SELECT [column_name] FROM [table_name] WHERE [column_name] = [value]) WHERE [column_name] = [value];

查询在这里详细解释http://www.voidtricks.com/mysql-update-from-select/







mysql