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

时间:2014-08-14 07:53:54

标签: mysql sql

我不擅长“制作”查询。让我们说这是我的db:

          artist                          pics
    -------------------       ---------------------------------------
    | id | name | age |       | id_artist | picUrl | picDescription |
    -------------------       ---------------------------------------
       |                          /\
       ----------------------------

我必须选择一个(单一)艺术家的所有照片。艺术家永远是一个,照片通常很多。 有没有办法只用一个查询来获取这些数据?查询完成后,如何处理表字段以检索其值?

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

迈克尔杰克逊

-pics 1 blablabla

-pics 2 blablabla

-pics 3 blablabla

...

谢谢

6 个答案:

答案 0 :(得分:0)

试试这个: -

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

答案 1 :(得分:0)

如果你用Google搜索,你应该得到很多帮助。

无论如何,你会想要使用以下查询:

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

答案 2 :(得分:0)

你必须使用连接:

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

RGDS,

答案 3 :(得分:0)

使用联接:

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

答案 4 :(得分:0)

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

SELECT column_name(s)
FROM artist
INNER JOIN pics
ON artist.id=pics.id_artist;

如果您只想获得返回的单个值,请为特定的atrist引入Where子句。 E.g。

WHERE artist.id=001 

答案 5 :(得分:0)

SELECT 
  id,
  `name`,
  picurl,
  picdescription 
FROM
  artist 
  INNER JOIN pics 
    ON artist.`id` = pics.`id_artist` ;