繁体   English   中英

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

[英]How to select a row from a table and many rows from another (related) table

我不擅长“制作”查询。 假设这是我的数据库:

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

我必须做出选择,才能获得(全部)艺术家的全部照片。 艺术家总是一个,而照片通常很多。 有没有一种方法可以仅通过一个查询获取此数据? 查询完成后,如何处理表字段以检索其值?

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

迈克尔杰克逊

-pics 1 blablabla

-pics 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;

如果您四处搜寻Google,应该会获得许多帮助。

无论如何,您将要使用以下查询:

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

Rgds,

使用联接:

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` ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM