我正在php Codeigniter框架中的一个网站上工作,并且我在将表连接在一起时遇到问题。
这两张桌子分别是餐点和餐厅,上面简单地写着
meals: id, restaurant_id, price, etc.
restaurants: id, name, location, etc.
使用以下代码进行查询:
$this->db->join('restaurants', 'restaurants.id = meals.restaurant_id');
$query = $this->db->get('meals');
返回的结果与运行以下命令相同:
$query = $this->db->query('SELECT * FROM meals INNER JOIN restaurants ON restaurants.id = meals.restaurant_id');
问题是,当我以php数组或对象的形式访问结果(由codeigniter DB类提供)时,只返回一个id,即餐厅id,而我需要膳食id。我怎样才能让它吐出餐号呢?
我对您当前的工具(php/codeigniter/等)没有经验,我假设问题出现是因为两个表对"id"列具有相同的名称?(这通常不是问题……但也许这些工具没有正确处理它?)对于SQL查询,区分具有相同名称的列的一种方法是在select语句中使用别名。下面是一个例子:
select
m.id as meal_id,
m.price as meal_price,
r.id as restaurant_id,
r.name as restaurant_name,
r.location as restaurant_location
from meals as m
inner join restaurants as r on r.id = m.restaurant_id
try this
SELECT t1.id as mid,t2.id as rid
FROM table_meals as t1
inner JOIN table_restaurant as t2 ON t2.id = t1.`restaurant_id`