gpt4 book ai didi

mysql 从三个表中选择一个

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:50 24 4
gpt4 key购买 nike

我有以下表格:

| table_one | table_two | table_three | table_four |
| t_one_id | t_two_id | t_three_id | t_four_id | // primary key (auto increment)
| | two_nid | three_nid | four_nid | // foreign key to table_one.t_one_id
| tone_date | ttwo_date | tthree_date | tfour_date | // time this was posted.
// other fields

和下面的查询,

SELECT `table_two` . * ,  `table_three` . * ,  `table_four` . * 
FROM `table_two`
JOIN ( `table_three` ) ON `table_three`.`three_nid`=1
JOIN ( `table_four` ) ON table_four`.`four_nid`=1
WHERE `table_two`.`two_nid`=1

以及以下数据:

table_one: 1, 11/08/2011
table_two: 1, 1, 12/08/2011
table_three: 1, 1, 13/08/2011
table_four: 1, 1, 14/08/2011

现在我的查询一直返回零结果,尽管我希望它返回的是(在每个表的日期订购时):

result 1: 1 | 1 | 12/08/2011 | // this is from table_two
result 2: 1 | 1 | 13/08/2011 | // from table three
result 2: 1 | 1 | 14/08/2011 | // from four

我也试过以下但没有成功:

SELECT * FROM table_two t2, table_three t3, table_four t4 WHERE t2.two_nid = 1 OR t3.three_nid=1 OR t4.four_nid=1;

我的 SQL 查询哪里出错了?

提前致谢,如果需要更多信息,请随时询问。

最佳答案

如果要将每个表的结果显示为单独的行,则需要进行三个单独的选择,然后对结果进行 UNION。试试这个:

SELECT `table_two` . * 
FROM `table_one`
JOIN ( `table_two` ) ON `table_two`.`two_nid`=`table_one`.`t_one_id`
WHERE `table_one`.`t_one_id`=1
UNION
SELECT `table_three` . *
FROM `table_one`
JOIN ( `table_three` ) ON `table_three`.`three_nid`=`table_one`.`t_one_id`
WHERE `table_one`.`t_one_id`=1
UNION
SELECT `table_four` . *
FROM `table_one`
JOIN ( `table_four` ) ON `table_four`.`four_nid`=`table_one`.`t_one_id`
WHERE `table_one`.`t_one_id`=1

关于mysql 从三个表中选择一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7333001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com