2013-08-20 59 views
0

我知道有一些類似的問題,但還有一些其他事情我也需要做。 這裏是我的數據庫設計:使用來自2個表的數據

LINKS

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. THEN從當前行鏈接1(在這種情況下具有值3)

選擇然後從LINKS-TABLE其中ID = '鏈接1值'(它是3)

選擇

然後從當前行選擇鏈接

查詢的最終結果應該是「C鏈接」。如果我們將LinkCollectionID更改爲1,那麼最終結果應該是B鏈接

我想以某種方式在php中輸出。

我試圖用JOINS和其他東西來閱讀我的這種方式,但我無法弄清楚。希望我的例子足夠清楚。

+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

試試這個

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

DEMO HERE

+0

帽子給你。非常感謝你爲這個不錯的解決方案。 – Gruffer

+0

你歡迎先生:)! –

+0

@ user2700729請務必接受答案,以解決問題。幫助其他人 –

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

+0

:)您提供了新的東西?或者只是喜歡複製:)。 –

+0

@echo_Me看來我在編輯中卡住了太多時間:) ...順便說一句... OP只查找鏈接作爲輸出:) –

相關問題