MySQL SELECT * FROM tbl1 WHERE smth和来自另一个表的字段是什么

时间:2010-12-22 15:04:08

标签: php mysql

我有两张桌子。一个包含酒店的信息,由用户添加到我的网站。它包含一个名为Username的字段,其中包含已上载它的人员的用户名。第二个表包含用户信息(包括一个名为“active”的字段,表示用户是否已付款)。我需要从第一个表中获取已经付款的用户的条目。目前我在PHP中这样做:

$hotelsq = mysql_query("SELECT * FROM trips_all ORDER BY id DESC ");
while ($hotel = mysql_fetch_array($hotelsq)) {
    $username = $hotel['username'];
    $isactiq = mysql_query("SELECT * FROM users WHERE username='$username'");
    $isact = mysql_fetch_array($isactiq);
    if ($isact['active'] == 'member') {

我需要的是一个查询,它将选择第一个表中的所有酒店,然后检查上传的用户(“用户名”列)是否在“有效”列中有“成员”。第二个表中的用户名列也被命名为“username”。 该查询会是什么样的?

3 个答案:

答案 0 :(得分:4)

select t.*
from trips_all t
inner join users on t.username = u.username
    where u.active = 'member'

答案 1 :(得分:1)

检查INNER JOIN:

SQL INNER JOIN Keyword

这就是:

mysql_query("SELECT * FROM trips_all INNER JOIN users ON trips_all.username=users.username WHERE users.active='member');

答案 2 :(得分:0)

select * from trips_all t
left join users u on t.id= u.userid
where u.active = 'member'