Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取两个Id';来自内部连接的s_Php_Mysql_Codeigniter_Join - Fatal编程技术网

Php 获取两个Id';来自内部连接的s

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-&

我在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数组或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`

谢谢你。结果发现有人用相同的解决方案遇到了完全相同的问题:谢谢你。结果发现有人用相同的解决方案遇到了完全相同的问题: