Php 表列包含查询
这是我的问题,我尝试从表A中选择数据,并使用列填充查询从表B中选择数据,从表C中选择数据。但表A、B和C不相关。下面是一个例子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
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)