1

私はこれをやろうとしています

SELECT 
  table1.*,
  table2.id as t2id 
FROM 
  table1 as t1 
INNER JOIN table2 as t2 
  ON t2.field1 = t1.field2 
  AND t1.field2 = 'value'
  AND IF(SELECT COUNT(*) FROM table2 WHERE id = 10 > 0)

エラーは言う

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 

'SELECT COUNT(*) FROM table2 WHERE id = 10 > 0) LIMIT ' at line 1

エラーは if 条件を削除すると機能することはわかっていますが、選択が成功しなかった場合、つまり table2 の ID 10 のテーブルに何も見つからなかった場合、select は null 値を返すと考えています。

4

3 に答える 3

1

を削除してみてくださいIF

SELECT 
  table1.*,
  table2.id as t2id 
FROM 
  table1 as t1 
INNER JOIN table2 as t2 
  ON t2.field1 = t1.field2 
  AND t1.field2 = 'value'
  AND (SELECT COUNT(*) FROM table2 WHERE id = 10) > 0;
于 2013-04-26T15:05:52.213 に答える
1

if の「then」の部分がありません。

IF (条件、その後、その他) のように見えますが、出力なしで条件を実行しているだけです。

そのようにしてみてください:

AND IF((SELECT COUNT(*) FROM table2 WHERE id = 10) > 0, 'true', 'false')
于 2013-04-26T14:57:40.813 に答える