我认为这应该很简单,但我似乎无法弄明白。
我有 2 个表。表A和表B由一个相同值的字段连接。
我想从表 A 中选择所有行。从表 B 中,我想选择所有连接到表 A 的行,其中表 A 中的列是特定值。
我是这样看的
SELECT tableA.*, (SELECT * FROM tableB INNER JOIN tableA on tableB.id = tableA.id WHERE tableA.complete = 1) FROM tableA
我已经运行了这段代码但是我得到了这个错误
Operand should contain 1 column(s)
我如何从表 A 中获取所有值并连接表 B 中的行,其中表 A 列为 1?
编辑:
这是我期望的输出结果
Table_A.someID Table_A.col Table_A.complete Table_B.someID Table_B.col
----------------|----------------|---------------------|-------------------|----------------
123 | something | 1 | 123 | value
124 | something | 1 | 124 | value
125 | something | 1 | 125 | value
126 | something | 0 | |
127 | something | 0 | |
我希望表 A 中的所有行不考虑列的完整值,而表 B 中任何链接到表 A 且完整的行都是 1。
如果你需要更多的解释,我会解释更多
最佳答案
您不需要外部查询。这应该足够了
SELECT tableA.*
FROM tableB INNER JOIN tableA on tableB.id = tableA.id
WHERE tableA.complete = 1
关于mysql - SQL 操作数应包含 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018928/