crazy_str
@crazy_str
web-программист

Как правильно вывести запрос LEFT JOIN MYSQL ?

Здравствуйте, столкнулся с проблемой того что в двух таблицах и более имеются одинаковые поля к примеру запрос
SELECT * FROM `members` LEFT JOIN `members_two` ON ( `members_two`.`Owned` = `members`.`member_id` ) WHERE `members`.`member_id` = '{$uid}' LIMIT 1

в этих таблицах имеются одинаковые поля V0, V1 и т.д
Как правильно вывести эти поля ?
  • Вопрос задан
  • 2374 просмотра
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
И всё таки, выводите поля в явном виде. Хотите сократить строки - пользуйтесь AS:
SELECT `m`.`V0`, `m`.`V1`, `mt`.`V0`, `mt`.`V1`, ...
    FROM `members` AS `m`
    LEFT JOIN `members_two` AS `mt` ON `mt`.`Owned` = `m`.`member_id`
    WHERE `m`.`member_id` = :uid
    LIMIT 1

А такое количество однотипных полей наводит на мысль, что с организацией базы может быть что-то не то.
Ну и не подставляйте переменные в строку, используйте параметризованные запросы mysqli или PDO.
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
В некоторых версиях mysql можно даже такFROM members m LEFT JOIN members_two mt
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
По по вопросу всегда видно - понимает ли автор, что он делает.
В данном случае автор уверен, что причина в джойне.
Что говорит нам об общей осмысленности мероприятия.
И уровне автора.
И необходимости отвечать на вопрос буквально, в "лоб".

Ладно, я не беру тех местных приматов, у которых в голове не помещается в голове больше одной мысли. С них спроса нет. Я обращаюсь к тем, у кого здравый смысл в принципе присутствует, но по какой-то неведомой науке причине отключается при заходе на сайт тостер.ру.

Случай здесь очевидный.
В таких случаях надо не уговаривать, "ну миленький, а может пересмотришь структурочку базочки данных? Нет? Ну нет - так нет. Тогда поможем тебе ваять этот треш и угар дальше...".

В таких случаях надо бить молотком по голове, объясняя, что наличие таблиц `members` и `members_two` содержащих одни и те же поля, и ТОЖЕ НУМЕРОВАННЫЕ - это продукт адовой неграмотности, и непонимания, что такое база данных вообще.

Объясняя, что за такие вещи этот несчастный школьник будет гореть в аду, и что таблица должна быть одна, и в ней должно быть поле, в котором ставится признак "two". А все нумерованные поля v1 v0 должны писаться в отдельную таблицу, из трех сполбцов - member_id, v, значение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы