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



我不擅长"making"查询。假设这是我的db:

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

我必须做一个选择来获得一个(单一)艺术家的所有照片。艺术家总是一个人,照片通常是很多的。是否有一种方法可以通过一个查询获得这些数据?查询完成后,如何处理表字段来检索它们的值?

我需要"print something like this"

迈克尔·杰克逊

-pics 1 blablabla

-图片2 blablabla

-pics 3 blablabla

谢谢

试试这个:-

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

必须使用join:

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,

Use Joins:

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;

如果您只想获得单个返回值,则为特定的医生引入Where子句。例如

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

相关内容

最新更新