猿问

SQL PHP查询多表数据

菜鸟警报在这里!我正在尝试从两个表中在我的 php 页面上显示一些数据,但我不知道该怎么做


db_bandas TABLE  

banda_id | banda_name

    1    |  Rolling Beatles

    2    |  Linkin Bizkit




db_albuns TABLE  

album_id | album_name | banda_id | album_ano

    1    |    Music   |    1     |  2000

    2    |   another  |    2     |  2014

    3    |  good one  |    1     |  2004

我想在页面上显示的内容如下:


 1  | Music    | Rolling Beatles | 2000 

 2  | another  | Linkin Bizkit   | 2014 

 3  | good one | Rolling Beatles | 2004

我试过这样的查询


$sql = "SELECT db_albuns.album_nome AS album_nome, db_albuns.album_id AS album_id, db_albuns.album_ano AS album.ano, db_banda.banda_nome AS banda_nome FROM db_albuns,db_banda";



天涯尽头无女友
浏览 127回答 3
3回答

慕标琳琳

您的表名应该是albums,列名应该是id, name, banda_id, ano。你的表名是专辑,所以我认为没有必要为每一列使用前缀“专辑”。以及另一个表名应该是bandas和列名应该是id, name你的查询应该是这样的$sql = "SELECT albums.id, albums.name, bandas.name, albums.ano        FROM albums JOIN bandas        on albums.banda_id = bandas.id";

蝴蝶不菲

您可以使用加入来做到这一点$sql = "SELECT db_albuns.album_nome, db_albuns.album_id, db_albuns.album_ano, db_banda.banda_nomeFROM db_albuns join db_banda on  db_albuns.banda_id = db_banda.banda_id";

素胚勾勒不出你

有几种不同的方法可以做到这一点,但我的首选是 LEFT JOIN。$sql = "SELECT album_id, album_name, banda_name, album_ano         FROM albuns LEFT JOIN bandas         USING (banda_id)         WHERE 1=1;另一方面,在表前加上 db_ 有点令人困惑,因为那是表的名称,而不是数据库的名称。
随时随地看视频慕课网APP
我要回答