使用2个表中的DATA

时间:2013-08-20 17:05:04

标签: mysql

我知道有一些类似的问题,但还有其他一些我需要做的事情。 这是我的数据库设计:

链接

ID  Link
--  --------
 1  A Link
 2  B Link
 3  C Link

LinkCollection

LinkCollectionID  Link1  Link2  Link3
----------------  -----  -----  -----
               1      2      1      3
               2      3      2      2
               3      1      3      1

我想在MYSQL中执行的查询是

  1. Select from LinkCollection-TABLE where LinkCollectionID = '2'

  2. 然后从当前的ROW Link1中选择(在这种情况下其值为3)

  3. 然后从LINKS-TABLE中选择ID ='Link1 value'(即3)

    然后从当前行选择链接

    查询的最终结果应为“C Link”。如果我们将LinkCollectionID更改为1,则最终结果应为B Link

    我想以某种方式在php中输出。

    我尝试使用JOINS和其他东西读到我的方式,但我无法理解。希望我的榜样足够清楚。

3 个答案:

答案 0 :(得分:2)

试试这个

    select t2.Link1 , t1.Link from LinkCollection t2
    INNER JOIN  LINKS t1
    ON t2.link1 = t1.id
    WHERE LinkCollectionID = '2' 

DEMO HERE

答案 1 :(得分:0)

以下查询将起作用,假设LinkCollection将始终返回一行

select L.Link from Link L where L.id = (select Lc.link1 from LinkCollection Lc where Lc.LinkCollectionID=2)

为了安全起见,您可以在子查询中添加限制1

select L.Link from Link L where L.id = (select Lc.link1 from LinkCollection Lc where Lc.LinkCollectionID=2 limit 1)

答案 2 :(得分:0)

此查询将为您提供您要查找的链接字段:

SELECT l.Link 
FROM LinkCollection lc
INNER JOIN LINKS l ON lc.Link1 = l.ID
WHERE lc.LinkCollectionID = '2' 

SQLFIDLE:http://www.sqlfiddle.com/#!2/e9e38/6/0