我有一个简单的博客,我正在练习一些php和mysql。我试图显示帖子作者的用户名(你知道作者发布的帖子)。 我有两个表blog_members和blog_posts,它们有1对多,所以我在blog_posts中有一个memberID字段。我试图获取该帖子作者的成员用户名。 我想要加入或者其他什么,但我无法解决这个问题。 这是我尝试做的事情,但它不起作用,因为我确定我没有正确使用它。
$query1 = "SELECT username from blog_members JOIN blog_posts ON memberID = memberID ";
$result1 = mysqli_query($link, $query1);
$row1 = mysqli_fetch_array($result1);
PS:我通过使用SESSION来获取用户ID,但是只有在用户被记录时才有效,但不是这样,我想在任何情况下显示名称。
谢谢!
答案 0 :(得分:2)
以这种方式使用内部联接
使用正确的清理使用$ your_user_id进行匹配
<?php
$address = 'Cafe Coffee Day, INSIDE HPCL Petrol Bunk, Mumbai - Goa Highway,
Mangaon, Maharashtra, India';
$prepAddr = str_replace(' ','+',$address);
$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?
address='.$prepAddr.'&sensor=false');
$output= json_decode($geocode);
// echo "<pre>";
// print_r($output);
$lat = $output->results[0]->geometry->bounds->northeast->lat;
$long = $output->results[0]->geometry->bounds->northeast->lng;
// $lati=round($lat,6);
// $longi=round($long,6);
echo $address.'<br>Lat: '.$lat.'<br>Long: '.$long;
?>
答案 1 :(得分:0)
尝试这样的事情,使用INNER JOIN
:
$query1 = "SELECT blog_members.username FROM blog_members INNER JOIN blog_posts ON blog_members.memberID = blog_posts.memberID ";
答案 2 :(得分:0)
查询中的JOIN语法错误。
使用以下查询:
$query1 = "SELECT username from blog_members JOIN blog_posts ON blog_members.memberID = blog_posts.memberID ";
$result1 = mysqli_query($link, $query1);
$row1 = mysqli_fetch_array($result1);
答案 3 :(得分:0)
以下是使用简单WHERE条件(相同性能Explicit vs implicit SQL joins)的解决方案:
SELECT a.username FROM blog_members a, blog_posts b WHERE a.memberID = b.memberID
但是如果您需要有关MySQL Join的更多信息:https://www.sitepoint.com/understanding-sql-joins-mysql-database/
希望这有帮助!