加入2个mysql查询,其中第二个查询依赖于第一个查询的输出

时间:2012-04-06 09:51:04

标签: php mysql

我使用我的第一个查询来获取用户的ID和名称:

select id,name from temp_card where sex='$sex' and city='$city' order by name ASC

然后我有第二个查询使用第一个查询的结果,并从另一个表中获取更多数据:

select images from temp_card_images where temp_card_id=". $row['id'] ." order by id ASC limit 1

如何组合这两个查询,以便在一个while循环中打印出3个字段(id,name和images)?

谢谢!

3 个答案:

答案 0 :(得分:3)

您需要执行JOIN查询

select tc.id, tc.name, tci.images from temp_card tc
left join temp_card_images  tci
on tc.id = tci.temp_card_id
where tc.sex='$sex' and tc.city='$city' order by tc.name ASC

答案 1 :(得分:2)

您需要了解JOIN。这可以像这样实现

SELECT tc.id,tc.name,tci.images
FROM temp_card tc
    INNER JOIN temp_card_images tci ON tc.id=tci.temp_card_id
WHERE sex='$sex' 
  AND city='$city' 
GROUP BY tc.id
ORDER BY name ASC

答案 2 :(得分:0)

虽然不相关,但我强烈建议您考虑使用PDO作为数据库访问层。它适用于大多数数据库类型,如MySQL,SQLite等。它将有助于防止SQL注入到您的数据库。

修改

删除了答案,因为给定的连接是更好的答案。