Как получить данные из двух таблиц с помощью mysql и php [duplicate]

Немного об объединении вещей выше.

  def print_caller_name (stack_size = 3): def wrapper (fn): def internal (* args, ** kwargs): import проверить stack = inspect.stack (  ) modules = [(index, inspect.getmodule (stack [index] [0])) для индекса в обратном (диапазон (1, stack_size))] module_name_lengths = [len (module .__ name__) для _, модуль в модулях] s  = '{index: & gt; 5}: {module: ^% i}: {name}'% (max (module_name_lengths) + 4) callers = ['', s.format (index = 'level', module = '  module ', name =' name '),' - '* 50] для индекса, модуль в модулях: callers.append (s.format (index = index, module = module .__ name__, name = stack [index] [3]  )) callers.append (s.format (index = 0, module = fn .__ module__, name = fn .__ name__)) callers.append ('') print ('\n'.join (вызывающие)) fn (* args  , ** kwargs) return inner return wrapper  

Использование:

  @print_caller_name (4) def foo (): return 'foobar' def bar ()  : return foo () def baz (): return bar () def fizz (): return baz () fizz ()  

output is

  level  : module: name --------  ------------------------------------------ 3: Нет: fizz 2: None  : baz 1: None: bar 0: __main__: foo  
3
задан Fluffeh 6 September 2012 в 10:52
поделиться

3 ответа

Что вам нужно сделать, это ПРИСОЕДИНЯЙТЕСЬ к таблицам.

Наиболее распространенные типы JOIN:

  1. INNER JOIN - Используется для сопоставления данных, в которых он может совпадать с ON ( ) заявление. Если значение ON () не совпадает, результат будет исключен.
  2. LEFT JOIN - Используется, если данные, которые вы сопоставляете в ON (), не обязательно должны быть там. Он просто добавляет данные в исходный ОТ и заполняет столбцы с помощью NULL, если данные не сопоставляются.

Пример

SELECT
 ft.id,
 ft.file_name,
 ft.file_description,
 ft.file_url,
 af.id as access_id,
 af.student_id,
 af.file_id
FROM
 files ft
 INNER JOIN access_files af ON ( ft.id = af.file_id )
WHERE
 fa.student_id = '$studentid'
5
ответ дан Kao 16 August 2018 в 08:01
поделиться

Присоедините свои таблицы.

SELECT table1.*, table2.*
FROM table1
LEFT JOIN table1.pk = table2.fk
WHERE table1.pk = 1;
1
ответ дан Ben 16 August 2018 в 08:01
поделиться

Вы делаете классическое декартовое соединение с вашим запросом:

SELECT * FROM files, access_files WHERE student_id ='$studentid'

Вам нужно указать, как связаны две таблицы:

SELECT * FROM files a, access_files b WHERE a.student_id ='$studentid' and b.studentID=a.student_id

Если вы не укажите ссылку - или ее нет, база данных попытается связать каждую строку в первой таблице с каждой отдельной строкой во второй.

2
ответ дан Fluffeh 16 August 2018 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: