MySQL ВЫБРАТЬ две записи из другой таблицы? - PullRequest
0 голосов
/ 26 марта 2020

ПРИМЕЧАНИЕ: это не то же самое, что этот вопрос , так как мне нужно получить данные из двух других записей, а не из двух полей из одной другой записи!

MySQL newb , У меня есть две таблицы, и я хочу получить данные из обеих из них, поэтому у меня есть следующее:

wp_bowling_fixtures

fixture_id | fixture_date | home_team_id | away_team_id
-----------+--------------+--------------+-------------
1          | 2017-12-12   | 1            | 2
2          | 2017-12-12   | 3            | 4
3          | 2017-12-12   | 5            | 6
4          | 2017-12-12   | 7            | 8
5          | 2017-12-12   | 9            | 10

wp_bowling_teams

team_id | name   | division | archived
--------+--------+----------+---------
1       | Team A | 1        | 0
2       | Team B | 1        | 0
3       | Team C | 2        | 1
4       | Team D | 2        | 0
5       | Team E | 3        | 0
6       | Team F | 3        | 0
7       | Team G | 4        | 0
8       | Team H | 4        | 1
9       | Team I | 4        | 0
10      | Team J | 4        | 0

Результат I Я хочу, чтобы запрос SELECT выдавал:

fixture_id | fixture_date | home_team_id | home_team_name | home_team_archived | home_team_division | away_team_id | away_team_name | away_team_archived | away_team_division
-----------+--------------+--------------+----------------+--------------------+--------------------+--------------+----------------+--------------------+-------------------
1          | 2017-12-12   | 1            | Team A         | 0                  | 1                  | 2            | Team B         | 0                  | 1

Я также хочу, чтобы он был упорядочен по fixture_date DES C, home_team_division AS C, home_team_name AS C.

Надеюсь, что имеет смысл .

TIA,

Ник.

Ответы [ 3 ]

1 голос
/ 26 марта 2020
select x.fixture_id, x.fixture_date, x.home_team_id, x.home_team_name, x.home_team_archived, x.home_team_division,
y.away_team_id, y.away_team_name, y.away_team_archived, y.away_team_division from
(select a.fixture_id, a.fixture_date, a.home_team_id, b.name home_team_name, b.archived home_team_archived, b.division home_team_division
 from wp_bowling_fixtures a inner join wp_bowling_teams b on A.home_team_id = B.team_id) x
 inner join  
 (select a.fixture_id, a.fixture_date, a.away_team_id, b.name away_team_name, b.archived away_team_archived, b.division away_team_division
 from wp_bowling_fixtures a inner join wp_bowling_teams b on A.away_team_id = B.team_id) y on x.fixture_id = y.fixture_id
 order by x.fixture_date desc, home_team_division asc, home_team_name asc;`enter code here`
1 голос
/ 26 марта 2020

ВЫБРАТЬ f.fixture_id, f.fixture_date, h.team_id в качестве home_team_id, h.name в качестве home_team_name, h.archived в качестве home_team_archived, h.division в качестве home_team_division, a.team_id в качестве away_team_id, a.name в качестве away_team. архивируется как away_team_archived, a.division как away_team_division FROM wp_bowling_fixtures f, wp_bowling_teams h, wp_bowling_teams a, где f.home_team_id = h.team_id и f.away_team_id = a.team_id, заказывают f.fix *, h.name asc;

Работает.

1 голос
/ 26 марта 2020

Ничто в sql не мешает вам дважды присоединиться к столу, но если вы сделаете это, вы должны использовать их псевдоним.

Вы ищете запрос, который использует

fixtures f 
JOIN teams h ON f.home_team_id = h.team_id
JOIN teams a ON f.away_team_id = a.team_id

Я дал командам псевдонимы h (для дома) и a (для выезда), чтобы я мог их различать , Дайте ему go при заполнении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...