発生するエラーは、から選択できないためですtable1 AND table2
。これは通常、有効なSQL構文ではありません。(MySQLには、他のほとんどのデータベースでは使用されない独自の構文があるため、「通常」と言います。)
JOIN
テーブル間のそのような関係を説明していないため、aが機能するようには見えません。
これは、両方のテーブルがまったく同じ構造(列の名前とタイプ、および同じ数の列)を持っている場合に機能するはずです。
SELECT * FROM users WHERE username = 'joe'
UNION ALL
SELECT * FROM tempusers WHERE username = 'joe'
テーブルに同じ正確なスキーマがない場合は、少なくとも最初のテーブルの列に名前を付ける必要がありますSELECT
。
SELECT
username, id, username, email, password, '' as activationcode
FROM
users
WHERE
username = 'joe'
UNION ALL
SELECT
username, id, username, email, password, activationcode
FROM
tempusers
WHERE
username = 'joe'
''
最初の選択では、の代わりに空白を指定する必要がある場合があります。文字列でない場合(たとえば、整数列の場合)activationcode
は、列に適切なタイプの値を使用する必要があります。activationcode
0