Pourquoi ai-je cette erreur? Le SQL fonctionne très bien lorsque je l'exécute dans phpMyAdmin.

SQLSTATE [42000]: erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version de serveur MySQL pour la bonne syntaxe à utiliser près de '' à la ligne 1 (SQL: sélectionnez l'id des utilisateurs où active = true et birthyear! = 0000 et n'existe pas (sélectionnez l'id dans agestats où users.id = agestats.user_id et agestats.year = 2020-01-13)

SQL:

select id
from users
where active = true
  and birthyear != 0000
  and not exists (
    select 1
    from agestats
    where users.id = agestats.user_id
      and agestats.year = 2020
  )

Et le code Laravel:

$membersToInsert = DB::select(DB::raw(
  'select id
  from users
  where active = true
    and birthyear != 0000
    and not exists (
      select id
      from agestats
      where users.id = agestats.user_id
        and agestats.year = ' . date('Y-m-d')
));
0
Daniel Linde 14 janv. 2020 à 00:05