Php 获取两个Id';来自内部连接的s
我在php Codeigniter框架中的一个网站上工作,在将表连接在一起时遇到问题 这两张桌子是餐点和餐厅,只是简单的版本Php 获取两个Id';来自内部连接的s,php,mysql,codeigniter,join,Php,Mysql,Codeigniter,Join,我在php Codeigniter框架中的一个网站上工作,在将表连接在一起时遇到问题 这两张桌子是餐点和餐厅,只是简单的版本 meals: id, restaurant_id, price, etc. restaurants: id, name, location, etc. 要进行查询,我使用以下代码: $this->db->join('restaurants', 'restaurants.id = meals.restaurant_id'); $query = $this-&
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数组或and对象(由codeigniter DB类提供)的形式访问结果时,只返回一个id,即餐厅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
我对您当前的工具(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
试试这个
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`
试试这个
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`
谢谢你。结果发现有人用相同的解决方案遇到了完全相同的问题:谢谢你。结果发现有人用相同的解决方案遇到了完全相同的问题: