Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表列包含查询_Php_Mysql - Fatal编程技术网

Php 表列包含查询

Php 表列包含查询,php,mysql,Php,Mysql,这是我的问题,我尝试从表A中选择数据,并使用列填充查询从表B中选择数据,从表C中选择数据。但表A、B和C不相关。下面是一个例子 Table A ID Title Query 1 one select note_nbr from table B 2 two select note_nbr from table C 3 three select note_nbr from table D I want output ID

这是我的问题,我尝试从表A中选择数据,并使用列填充查询从表B中选择数据,从表C中选择数据。但表A、B和C不相关。下面是一个例子

Table A
ID   Title        Query 
1    one       select note_nbr from table B
2    two       select note_nbr from table C  
3    three     select note_nbr from table D

I want output
ID  Title       note_nbr
1    one       122  (from table B)
1    one       153  (from table B)
2    two       224  (from  table C)
3    three     713  (from  table D)
3    three     224  (from  table D)
查询我尝试过使用子查询,但我不知道如何加入,因为它不相关。列的名称只是一个示例

SELECT 
      TES.ID AS ID,
      TES.NTFY_TTL AS TITLE,
      NBR.NBR_ORD AS NOTE 
FROM
     (SELECT 
           A.ID AS ID,
           A.NTFY_TTL AS NTFY_TTL, 
           FROM A.ID A
     ) TES
LEFT JOIN
     (
     SELECT
          B.ID_NOTE AS ID
          B.NOTE_NBR AS NBR_ORD
     FROM 
          B.ID_NOTE B
UNION ALL
     SELECT
          C.ID_NOTE AS ID
          C.NOTE_NBR AS NBR_ORD
     FROM 
          C.ID_NOTE C 
     ) 
NBR ON TES.ID

可以在没有关系的情况下加入,但我不明白您如何期望只有一个人加入(例如)

如果存在a、b、c、d,则删除表格

create table a(id int, ntf_ttl varchar(6));
create table b(note_nbr int);
create table c(note_nbr int);
create table d(note_nbr int);

insert into a values (1,'one'),(2,'two'),(3,'Threee');
insert into b values(123),(153);
insert into c values(224);
insert into d values(713),(224);

select id,ntf_ttl,note_nbr from a cross join b

result
+------+---------+----------+
| id   | ntf_ttl | note_nbr |
+------+---------+----------+
|    1 | one     |      123 |
|    1 | one     |      153 |
|    2 | two     |      123 |
|    2 | two     |      153 |
|    3 | Threee  |      123 |
|    3 | Threee  |      153 |
+------+---------+----------+
6 rows in set (0.00 sec)
我希望你明白我说的话。所以当查询中的所有数据都显示在表a的id 1中时。因此,输出

ID  note_nbr
1   123(*from table b)
2   123(*from table c)

这肯定是一个糟糕的数据库设计。考虑创建No.No.NBR表,其中表中的外键ID Ai试图通知通知有问题,所以我应该选择通知表中的所有注释编号。必须存在某种关系,否则您如何知道一个注释编号应该只链接到表b?因此不可能从表中获取不相关的数据?不。可以使用交叉连接,但您不会得到您想要的结果。请参见答案。我想要的是,查询中从表b中选择的所有数据,都显示在id表a中基于id表a的行查询的id中。我不清楚您的要求是什么,您能否尝试使用我回答中的数据模型重新表述。对不起,很难说英语,我的英语不好。好吧
ID  note_nbr
1   123(*from table b)
2   123(*from table c)