这是我的问题:
$query = 'SELECT * extensa_econt_city as econt_city, extensa_econt_office as econt_office WHERE econt_city.city_id = econt_office.city_id';
我正在尝试选择表extensa_econt_city
和extensa_econt_office
中的所有行,其中来自city_id
的{{1}}等于来自extensa_econt_city
的{{1}}
然后,当我得到这个信息时,我必须创建FORECH循环。重要的是FORECH而不是循环。
以下是我的示例代码:
city_id
在这个foreach循环中,我必须从extensa_econt_office
和<?PHP
foreach($results as $row){
echo $row['econt_city.name'];
echo $row['econt_office.name'];
}
?>
中选择行name
。
我希望你明白我在问什么。
你能帮我解决这个问题。
提前致谢!
答案 0 :(得分:2)
我认为这可能就是你的意思。
select
c.`city_id`,
c.`post_code`,
c.`type`,
c.`name`,
c.`name_en`,
c.`zone_id`,
c.`country_id`,
c.`office_id`
o.`FIELD_NAME` as 'ALIAS',
o.`NEW_FIELD_NAME` as 'OTHER ALIAS'
from `extensa_econt_city` c
left outer join `extensa_econt_office` o on o.`city_id`=c.`city_id`
一旦表别名(在这种情况下,别名是c&amp; o),你可以选择使用*的所有记录(除非有重复的名称,在这种情况下你会得到一个错误)或者,如上所述,选择直接在查询中的所需字段。
设置查询后,FOREACH
循环可以通过sql中定义的名称/别名选择记录
答案 1 :(得分:2)
我正在尝试从表extensa_econt_city中选择所有行 extensa_econt_office,其中来自extensa_econt_city的city_id等于 来自extensa_econt_office的city_id ... 在此foreach循环中,我必须从
name
和extensa_econt_office
中选择行extensa_econt_city
。
SELECT eec.name AS ee_city_name,
eeo.name AS ee_office_name,
FROM extensa_econt_city eec
LEFT JOIN extensa_econt_office eeo ON eec.city_id = eeo.city_id
在PHP foreach循环中,您可以访问如下数据:
<?php
foreach($results as $row){
echo $row['ee_city_name'];
echo $row['ee_office_name'];
}
答案 2 :(得分:2)
您要查找的只是name
列,而不是您显示的所有列(选择*)。不要使用通配符(使用select *)向下拖动系统。也做一个明确的加入。
这是我假装架构的视觉效果,因为我并不认为它是你的。
进行显式连接,不像你在where子句中的连接(该风格大约是1995年)
create table extensa_econt_city
( id int auto_increment primary key,
city_id int not null,
name varchar(100) not null
);
create table extensa_econt_office
( id int auto_increment primary key,
city_id int not null,
name varchar(100) not null
);
insert extensa_econt_city(city_id,name) values (1,'eec name1'),(2,'eec name2'),(3,'eec name3');
insert extensa_econt_office(city_id,name) values (1,'EEO name1'),(2,'EEO name2'),(3,'EEO name3');
select eec.name as eec_name,eeo.name as eeo_name
from extensa_econt_city eec
join extensa_econt_office eeo
on eeo.city_id=eec.city_id;
+-----------+-----------+
| eec_name | eeo_name |
+-----------+-----------+
| eec name1 | EEO name1 |
| eec name2 | EEO name2 |
| eec name3 | EEO name3 |
+-----------+-----------+