当所有3个表都具有状态为“1”的行时,以下查询正常工作,但如果其中一个表没有状态为“1”的行,则整个查询将返回空,即使其他表包含行要求的状态。
SELECT
table1.row_id as rowsone,
table2.row_id as rowstwo,
table3.row_id as rowsthree
FROM
table1,
table2,
table3
WHERE table1.status = 1 AND table2.status = 1 AND table3.status = 1
答案 0 :(得分:1)
我认为你的文件有什么不对,我们都知道所有的表都是单独运行的,但是所有的表都有相同的字段名“status”,使用AND条件就是所有的条件必须如果一个人不满足条件,那么整个会导致错误的价值,或者在你的情况下是0,所以我建议的是:
选择 table1.row_id为rowsone, table2.row_id为rowstwo, table3.row_id为rowsthree
这 表格1, 表2, 表3
WHERE status = 1
使用此代码检查表1,2和3,如果它们的状态为1。
答案 1 :(得分:0)
如果您知道只有一行,则可以使用子查询
SELECT ( SELECT title from table1 WHERE status =1),
( SELECT title from table2 WHERE status =1),
( SELECT title from table3 WHERE status =1)
FROM DUAL;
如果所有表格都有不同数量的记录......您必须考虑所需的结果类型。可能类似于full outer join,MySQL不支持。进行多次查询会更快,更优雅。