php
  • mysql
  • database
  • mysqli
  • 2016-04-12 3 views 0 likes 
    0

    У меня есть данные, хранящиеся в двух разных таблицах, называемых «сообщениями» и «комментариями». Теперь я использую две mysqli_query.Mysqli выбрать из двух таблиц

    $q = mysqli_query($db,"SELECT * FROM posts WHERE username='$username'"); 
        $q = mysqli_query($db,"SELECT * FROM comments WHERE username='$username'"); 
    

    Могу ли я сделать это только с одной mysqli_query или с 3 таблицами?

    +1

    Вы ищете ключевое слово 'JOIN'? Кроме того, это выглядит как уязвимость SQL-инъекций, которую вы там имеете. – David

    +1

    Показать схему db и ожидаемый результат. \t Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/), чтобы узнать, как улучшить качество вопроса и получить лучшие ответы. –

    ответ

    1

    Вы можете просто объединять обе таблицы:

    $q = mysqli_query($db,"SELECT * FROM posts 
    LEFT JOIN comments ON comments.username=posts.username 
    WHERE comments.username='$username'"); 
    

    Однако, похоже, что вы не используете идентификаторы. Я предлагаю вам создать поля автоинкремента ID, чтобы установить связь между таблицами. Если вы не понимаете, что я имею в виду, попробуйте следовать учебнику, и в нашем или двух вы узнали бы больше, чем просто перепрыгивая в кодирование, пытаясь сделать что-то и пытаясь понять, как они работают, даже не зная, делаю это правильно.

    +0

    left join with 'where' над той же таблицей становится внутренним соединением :) однако левое соединение здесь не обязательно, внутреннее соединение является правильным соединением в этом случае. – mitkosoft

    +0

    @mitkosoft, правда о соединениях. (Я должен был быстро ответить :) С информацией, которую он поделился, мы не можем много сделать, советуя лучший способ сделать это. Я просто хотел показать это с помощью одного запроса, но моя главная цель заключалась в том, чтобы предложить ему немного узнать о DB и SQL, поскольку нет смысла строить большие запросы, если таблицы, поля и отношения БД недостаточно структурированы. – BeoWulf

    Смежные вопросы