[英]Get data from 2 tables and make a table in one query
I have two MySQL tables: 我有两个MySQL表:
offers:
id | rid | name
------------------------------
1 | 1234 | mary
2 | 1235 | john
3 | 5342 | liam
And 和
geo_in_off:
offer_id | geo_id
------------------------------
1 | 1234
2 | 1235
3 | 5342
I need to make a table on my website looging like: 我需要在我的网站上进行搜索,例如:
1(number) | 1234(rid) | name(name) | 1(geo_id)
But I got MySQL troubles. 但是我遇到了MySQL的麻烦。
My code is: 我的代码是:
require('../config.php');
echo "<table class=\"offer-table\">";
echo "<tr><th id=\"off_col_num\">№</th><th id=\"off_col_id\">offer ID</th><th id=\"off_col_name\">Название</th><th id=\"off_col_geo\">Geo</th></tr>";
$i = 1;
$sql ="SELECT * FROM `offers` ORDER BY `rid` JOIN geo_in_off ON geo_in_off.id = offers.id";
$result = mysql_query($sql) or die(mysql_error());
while ($row=mysql_fetch_assoc($result)) {
echo "<tr><td>" . $i . "</td><td>" . $row['rid'] . "</td><td>" .
$row['name'] . "</td><td>" .$i . "</td></tr>" ;
$i++;
}
echo "</table>";
I've got problems with MySQL synaxis and the logic how to get the data from 2 tables and give the result in one "while loop". 我在MySQL同步和逻辑上遇到了问题,该逻辑如何从2个表中获取数据并在一个“ while循环”中给出结果。
So I need to join 2 queries in one: 所以我需要将两个查询合二为一:
$sql ="SELECT * FROM `offers` ORDER BY `rid`";
$sql ="SELECT `geo_id` FROM `geo_in_off` WHERE `offer_id` = '$each_offer_id_from_offers'";
And optional but not necessary: 可选但不是必需的:
$sql ="SELECT `name` FROM `geo` WHERE `id` = '$geo_id_got_from_table_geo_in_off'";
And get a table where I get the offer id, the offer name and the offer geo. 并获得一个表格,在该表格中可以找到商品ID,商品名称和商品地理位置。
Try this query, it does help you (full join query) 试试这个查询,对您有帮助(完全联接查询)
SELECT offers.*, geo_in_off.geo_id FROM offers,
geo_in_off WHERE offers.id=geo_in_off.offer_id
Change 更改
$sql ="SELECT * FROM `offers` ORDER BY `rid` JOIN geo_in_off ON geo_in_off.id = offers.id";
To 至
$sql ="SELECT * FROM `offers` JOIN `geo_in_off` ON `geo_in_off`.`offer_id` = `offers`.`id` ORDER BY `offers`.`rid`";
1) ORDER BY order is wrong in your query 1)您查询的订单顺序错误
SELECT column1, column2, ... SELECT column1,column2,...
FROM table_name FROM table_name
ORDER BY column1, column2, ... ASC|DESC; ORDER BY column1,column2,... ASC | DESC;
2) Instead of geo_in_off.id = offers.id
use geo_in_off.offer_id = offers.id
2)代替geo_in_off.id = offers.id
使用geo_in_off.offer_id = offers.id
Try this query: 试试这个查询:
$sql = 'SELECT of.id, of.rid, of.name, geo.id
FROM of.offers
INNER JOIN of.id = geo.offer_id
WHERE offer_id = \''.$each_offer_id_from_offers.'\' order by of.rid'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.