Mysql 如何从一个表中选择一行,从另一个(相关)表中选择多行

Mysql 如何从一个表中选择一行,从另一个(相关)表中选择多行,mysql,sql,Mysql,Sql,我不擅长“提出”疑问。假设这是我的数据库: artist pics ------------------- --------------------------------------- | id | name | age | | id_artist | picUrl | picDescription | ------------------- -----------

我不擅长“提出”疑问。假设这是我的数据库:

          artist                          pics
    -------------------       ---------------------------------------
    | id | name | age |       | id_artist | picUrl | picDescription |
    -------------------       ---------------------------------------
       |                          /\
       ----------------------------
我必须作出选择,以获得一个(单一)艺术家及其所有图片。艺术家总是一个人,而照片通常是很多的。 有没有一种方法只需一次查询就可以获得这些数据?查询完成后,如何处理表字段以检索其值

我需要“打印这样的东西”

迈克尔杰克逊

-图1布拉布拉布拉

-图2布拉布拉布拉

-图3布拉布拉布拉

谢谢

试试这个:-

SELECT A.id, A.name, B.picUrl, B.picDescription
FROM artist A, pics B
WHERE A.id = B.id_artist;

如果你在谷歌上搜索过,你应该得到很多帮助

无论如何,您应该使用以下查询:

SELECT * from artist ar INNER JOIN pics p ON ar.id=p.id_artist

您必须使用连接:

select * from artist a inner join pics p on a.id=p.id_artist
此查询不会为您提供没有图片的艺术家。要获得它们:

select * from artist a left join pics p on a.id=p.id_artist
RGD,

使用联接:

SELECT a.*, b.picUrl, b.picDescription FROM artist a
INNER JOIN pics b on b.id_artist = a.id

您可以在这两个表之间使用内部联接。只要存在匹配项,这将显示两个表中的所有行

SELECT column_name(s)
FROM artist
INNER JOIN pics
ON artist.id=pics.id_artist;
如果只希望返回单个值,请为特定的atrist引入Where子句。例如

WHERE artist.id=001 

非常感谢。但现在我不明白如何“使用”查询结果。我如何才能创建一个循环,让我的艺术家,然后所有相关的图片?我必须循环结果,因为我需要将其放入一些java对象中,因此必须使用前端编码。是的,我知道,我的意思是如何正确循环记录集。如果我现在“循环”唱片集,我会得到这个迈克尔1-jackson-img-concert…2-jackson-img-family。。。我想要的是:1-jackson-img-concert…2-img-family
SELECT 
  id,
  `name`,
  picurl,
  picdescription 
FROM
  artist 
  INNER JOIN pics 
    ON artist.`id` = pics.`id_artist` ;