我知道有一些类似的问题,但还有其他一些我需要做的事情。 这是我的数据库设计:
链接
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中执行的查询是
Select from LinkCollection-TABLE where LinkCollectionID = '2'
然后从当前的ROW Link1中选择(在这种情况下其值为3)
然后从LINKS-TABLE中选择ID ='Link1 value'(即3)
然后从当前行选择链接
查询的最终结果应为“C Link”。如果我们将LinkCollectionID更改为1,则最终结果应为B Link
我想以某种方式在php中输出。
我尝试使用JOINS和其他东西读到我的方式,但我无法理解。希望我的榜样足够清楚。
答案 0 :(得分:2)
试试这个
select t2.Link1 , t1.Link from LinkCollection t2
INNER JOIN LINKS t1
ON t2.link1 = t1.id
WHERE LinkCollectionID = '2'
答案 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'