我有两个帖子表,还有一个检查其中一个帖子表的中间人表。
// Post1 // Post2
+----+--------+--------------+ +----+--------+--------------+
| id | title | content | | id | title | content |
+----+--------+--------------+ +----+--------+--------------+
| 1 | how | are you? | | 1 | nice | to meet you |
+----+--------+--------------+ +----+--------+--------------+
// Middleman
+------------+------------+
| table_code | table_name |
+------------+------------+
| 100 | Post1 |
| 101 | Post2 |
+------------+------------+
我也有这样的投票表:
+----+---------+------------+---------+-------+-----------+
| id | post_id | table_code | user_id | value | timestamp |
+----+---------+------------+---------+-------+-----------+
| 1 | 1 | 101 | xxx | -1 | xxx |
+----+---------+------------+---------+-------+-----------+
现在,我希望获得投票的{{1>}(很好)和title
(见到你)。实际上我想要的是使用content
- 表作为数组(给Middleman
并得到table_code
),然后使用table_name
来选择考虑过的帖子。
换句话说,我有两个参数:table_name
,$post_id = 1
。现在我想在$table_code = 101
表格中选择第一个帖子(Post2
根据Post2
)。像这样:
101
但它不起作用,我该如何解决?
注意:根据个人原因,我不想使用PHP数组而不是select title, content
from
(select table_name
from Middleman
where table_code = 101)
where id = 1;
表。
答案 0 :(得分:1)
我不确定是否可能,通常我们通过重新组织架构找到解决方案。首先,我们需要两个表:post1和post2都具有基本相同的模式吗?如果我们可以只有一个表帖子包含id,title,content并摆脱Middleman表,我们可能已经解决了这个问题。除了table_code之外,Votes表将包含所有列。然后您可以轻松查询:
select p.title, p.content from Post p join Votes v on p.id = v.post_id where v.post_id = 1;