【发布时间】:2014-06-20 18:40:31
【问题描述】:
我有一个名为activities 的表,在该表中我有这些有用的列(没有提到所有列)
`item_id` AND `table`
还有几个不同的表,现在基本上这个activities 表所做的就是指向不同表中的目标,比如说
SELECT * FROM `activities` WHERE `user_id` = 1;
你得到:
ID:1 TABLE:photos ITEM_ID:55
ID:2 TABLE:posts ITEM_ID:57
等等……
我想从table 列的值中获取数据,这里我有一个photos 一个posts 这些是不同的表。
我可以使用 PHP 循环来做到这一点:
$query = 'SELECT * FROM `activities` WHERE `user_id` = 1;'
$results = $DB->GetRows($query);
foreach($results as $result){
$table = $result->table;
$query2 = "SELECT * FROM `$table` WHERE `user_id` = '1'";
$res = $DB->GetRows($query2);
}
所以在这里我可以从其他表中获取结果,但如果可能的话,我想要一个查询而不是多个查询。
【问题讨论】:
-
当它们匹配时你消除了什么?
标签: php mysql left-join inner-join