Lassen Sie mich mich selbst klären, ist meine Frage "Wie Zeilen aus der Bindung einzelner Tabellen und eine Querverweistabelle ohne wiederholende Werte auswählen?"Wählen Sie aus zwei Tabellen, ohne alle Werte zu wiederholen
Im Moment habe ich drei Tabellen, eine Querverweistabelle und zwei Einzeltische:
Table jobs
╔══════════╦══════════════════════════╗
║ job_id ║ details ║
╠══════════╬══════════════════════════╣
║ 1 ║ Looking for hire... ║
║ 2 ║ We need help!... ║
║ 3 ║ We are a store that... ║
║ 4 ║ Help wanted... ║
╚══════════╩══════════════════════════╝
Table job2pos
╔═══════════╦═════════════╗
║ job_id ║ position_id ║
╠═══════════╬═════════════╣
║ 1 ║ 10 ║
║ 2 ║ 10 ║
║ 2 ║ 12 ║
║ 3 ║ 11 ║
║ 3 ║ 13 ║
║ 4 ║ 10 ║
╚═══════════╩═════════════╝
Table positions
╔═══════════════╦═══════════════╗
║ position_id ║ position_name ║
╠═══════════════╬═══════════════╣
║ 10 ║ waitress ║
║ 11 ║ cashier ║
║ 12 ║ cook ║
║ 13 ║ chef ║
╚═══════════════╩═══════════════╝
Wenn ich führen diese Abfrage:
$sql = "SELECT jobs.details, positions.name AS position FROM jobs
INNER JOIN job2pos ON jobs.job_id = job2pos.job_id
INNER JOIN positions ON job2pos.position_id = positions.position_id
WHERE job2pos.job_id IN (2)";
...
print_r($stmt->fetchAll(\PDO::FETCH_ASSOC));
Und ich folgendes:
Array(
[0] => Array ([details] => We need help!...
[position] => Waitress)
[1] => Array ([details] => We need help!...
[position] => Cook)
)
Jetzt habe ich 2 Zeilen für den gleichen Job, aber was ich will, ist etwas ähnliches:
Array(
[0] => Array ([details] => We need help!...
[position] => Array ([0] => Waitress
[1] => Cook)
)
)
- Wenn Sie einige unnötige Code hinweisen könnte ich in meinem Code haben, der groß sein würde.
Versuchen Sie, 'select distinct jobs.job_id'? –
Möglicherweise müssen Sie Ihre Abfrage in zwei separate Abfragen aufteilen. Es funktioniert so, wie es sein sollte. – Maximus2012
@ user3360140 Versucht, aber funktioniert nicht: < – Sarah