SQL PHP查询多个表数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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";


答案

您可以通过几种不同的方法来执行此操作,但我的首要任务是左联接。

$sql = "SELECT album_id, album_name, banda_name, album_ano
        FROM albuns LEFT JOIN bandas
        USING (banda_id)
        WHERE 1=1;

另一方面,用db_开头的表有点令人困惑,因为那是表的名称,而不是数据库的名称。

另一答案

您可以使用Join来做

$sql = "SELECT db_albuns.album_nome, 
db_albuns.album_id, db_albuns.album_ano, 
db_banda.banda_nome
FROM db_albuns join db_banda 
on  db_albuns.banda_id = db_banda.banda_id";
另一答案

您的表名称应为相册,列名称应为id,name,banda_id,ano。您的表格名称是相册,因此我认为无需在每列中使用前缀“相册”。

以及另一个表名应为bandas,列名应为id,名称

您的查询应该是这样

$sql = "SELECT albums.id, albums.name, bandas.name, albums.ano
        FROM albums JOIN bandas
        on albums.banda_id = bandas.id";

以上是关于SQL PHP查询多个表数据的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE怎么用SQL查询多张表和多个时间点的数据的行数?

sql 查询语句中对某列数据做条件判断

sql 有重复字段的多个表查询时,数据被覆盖怎么解决?

如何使用 php 数组将 sql 查询结果转换为数据透视表?

SQL如何把查询出来的多个表创建成一个临时表

SQL如何把查询出来的多个表创建成一个临时表