Mysql как да приложите търсене на ред в две таблици, Mysql
Хакер Здравей,
Въпросът е следващият. Има две таблици (КНИГИ и АВТОР). Първият има полето book_name, а вторият има полето avtor_name.
Как мога да внедря, че ще търси конкретен низ (той ще бъде зададен от потребителя в низа) едновременно в две таблици?
Тоест, потребителят въвежда текст и има избор от ДВЕ таблици, само тези редове, където се среща тази стойност.
Разбирам, че е възможно това да стане чрез JOIN, но нещо не се получава по никакъв начин.
И какво ще намеря, ако търся, да речем, "1') ИЛИ 1=1; пускане на таблици -" без кавички?
ise-dvp ИЗБЕРЕТЕ * ОТ книги ПОРЪЧАЙТЕ СЕ към автор на (books.avtor_ > WHERE (books.book_name LIKE '%".$srch. "%') ИЛИ (avtor.avtor_name LIKE '%".$srch. "%') ORDER BY books.book_name
stopkran Можете също да направите това:
(SELECT 'id', 'book_name' FROM 'books' WHERE 'book_name' LIKE '%%') UNION (SELECT 'id', 'avtor_name' FROM 'avtor' WHERE 'avtor_name' LIKE '%%')
Необходимо е само същият брой полета да се показват във всяка UNION заявка (* няма да работи, ако структурата на таблицата е различна).
ръкохватка Не разбираш. Прочетете повече за SQL Injection.
MapbeBu4 най-добрият отговор Както вече споменахме, трябва да обедините таблици по ключ, най-вероятно тези таблици са свързани. И лявото съединение е неподходящо тук, тъй като в този случай нямате водеща таблица. Заявката е проста, не се занимавайте със синтаксиса на присъединяването, просто напишете: