У меня есть 3 стола, которые я бы хотел собрать. Видео-таблица со всеми видео пользователями, таблица изображений со всеми изображениями пользователей и таблицей камер. Я хочу, чтобы перечислить все изображения и видео и отсортировать ихприсоединиться к 3 столам сорта
prefix_videos столом с (videoid, userid, cameraid, videosize, datetime, deleted, videolength, videoname)
столом prefix_images с (imageid, userid, cameraid, imagesize, datetime, deleted, imagename)
столом prefix_cameras с (userid, cameraid, ...)
Раньше у меня был только стол видео, так этот запрос дал me, что мне было нужно:
SELECT prefix_videos.videoid, prefix_videos.videoname, prefix_videos.videosize,
prefix_videos.videodatetime, prefix_videos.videolength, prefix_cameras.cameraname FROM
prefix_videos INNER JOIN prefix_cameras USING (userid,cameraid) WHERE
prefix_videos.deleted IS NULL AND prefix_videos.userid=xxx ORDER BY
prefix_videos.datetime DESC
Но сейчас Я добавляю таблицу изображений. Так что я хочу, чтобы построить таблицу с:
imageid/videoid, cameraid, imagesize/videosize, datetime (either from image or video table), videoname/imagename
Потому что я теперь комбинируя изображения и видео таблицу, чтобы дать один результат я не уверен другой INNER JOIN имеет смысл здесь?
Другая важная часть здесь - это проверка NULL для удаленных записей и возможность ЗАКАЗАТЬ их к дате, независимо от того, поступают ли они от изображений или видео.
Это не работает для меня, я думаю, потому что столбцы не совпадают. Поэтому я считаю, что это нарушает правила UNION. Все еще пытаясь понять это ... – Tom
вы можете использовать cast() для преобразования разных столбцов в разные типы. – AdrianBR